diff --git a/metamaskConnectr/DESCRIPTION b/metamaskConnectr/DESCRIPTION index f5bb753..c1fcaf1 100644 --- a/metamaskConnectr/DESCRIPTION +++ b/metamaskConnectr/DESCRIPTION @@ -14,6 +14,6 @@ Roxygen: list(markdown = TRUE) RoxygenNote: 7.1.1 Imports: htmltools, reactR, shiny NeedsCompilation: no -Packaged: 2022-03-17 19:39:06 UTC; angelaminster +Packaged: 2022-05-03 14:14:17 UTC; angelaminster Author: Angela Minster [cre] (123456) Maintainer: Angela Minster diff --git a/metamaskConnectr/inst/www/metamaskConnectr/metamaskConnect/metamaskConnect.js b/metamaskConnectr/inst/www/metamaskConnectr/metamaskConnect/metamaskConnect.js index d876d80..a08cdfe 100644 --- a/metamaskConnectr/inst/www/metamaskConnectr/metamaskConnect/metamaskConnect.js +++ b/metamaskConnectr/inst/www/metamaskConnectr/metamaskConnect/metamaskConnect.js @@ -81,7 +81,7 @@ /******/ /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = "./srcjs/metamaskConnect.jsx"); +/******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ({ @@ -96,7 +96,7 @@ "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "abi/5.5.0"; +var version = "abi/5.6.1"; /***/ }), @@ -3394,6 +3394,7 @@ var Interface = /*#__PURE__*/function () { var bytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(data); var reason = null; + var message = ""; var errorArgs = null; var errorName = null; var errorSignature = null; @@ -3419,23 +3420,28 @@ var Interface = /*#__PURE__*/function () { if (builtin.reason) { reason = errorArgs[0]; } + + if (errorName === "Error") { + message = "; VM Exception while processing transaction: reverted with reason string ".concat(JSON.stringify(errorArgs[0])); + } else if (errorName === "Panic") { + message = "; VM Exception while processing transaction: reverted with panic code ".concat(errorArgs[0]); + } } else { try { var error = this.getError(selector); errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4)); errorName = error.name; errorSignature = error.format(); - } catch (error) { - console.log(error); - } + } catch (error) {} } break; } } - return logger.throwError("call revert exception", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_9__["Logger"].errors.CALL_EXCEPTION, { + return logger.throwError("call revert exception" + message, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_9__["Logger"].errors.CALL_EXCEPTION, { method: functionFragment.format(), + data: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(data), errorArgs: errorArgs, errorName: errorName, errorSignature: errorSignature, @@ -3793,7 +3799,7 @@ var Interface = /*#__PURE__*/function () { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "abstract-provider/5.5.1"; +var version = "abstract-provider/5.6.0"; /***/ }), @@ -4014,7 +4020,7 @@ var Provider = /*#__PURE__*/function () { // We may want to compute this more accurately in the future, // using the formula "check if the base fee is correct". // See: https://eips.ethereum.org/EIPS/eip-1559 - maxPriorityFeePerGas = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from("2500000000"); + maxPriorityFeePerGas = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from("1500000000"); maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas); } @@ -4066,7 +4072,7 @@ var Provider = /*#__PURE__*/function () { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "abstract-signer/5.5.0"; +var version = "abstract-signer/5.6.0"; /***/ }), @@ -4144,7 +4150,7 @@ var __awaiter = undefined && undefined.__awaiter || function (thisArg, _argument var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); -var allowedTransactionKeys = ["accessList", "chainId", "customData", "data", "from", "gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "to", "type", "value"]; +var allowedTransactionKeys = ["accessList", "ccipReadEnabled", "chainId", "customData", "data", "from", "gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "to", "type", "value"]; var forwardErrors = [_ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.INSUFFICIENT_FUNDS, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.NONCE_EXPIRED, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.REPLACEMENT_UNDERPRICED]; ; ; @@ -4734,7 +4740,7 @@ var VoidSigner = /*#__PURE__*/function (_Signer) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "address/5.5.0"; +var version = "address/5.6.0"; /***/ }), @@ -5162,7 +5168,7 @@ var Base58 = new BaseX("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwx "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "bignumber/5.5.0"; +var version = "bignumber/5.6.0"; /***/ }), @@ -5264,7 +5270,7 @@ var BigNumber = /*#__PURE__*/function () { var o = BigNumber.from(other); if (o.isZero()) { - throwFault("division by zero", "div"); + throwFault("division-by-zero", "div"); } return toBigNumber(toBN(this).div(toBN(other))); @@ -5280,7 +5286,7 @@ var BigNumber = /*#__PURE__*/function () { var value = toBN(other); if (value.isNeg()) { - throwFault("cannot modulo negative values", "mod"); + throwFault("division-by-zero", "mod"); } return toBigNumber(toBN(this).umod(value)); @@ -5291,7 +5297,7 @@ var BigNumber = /*#__PURE__*/function () { var value = toBN(other); if (value.isNeg()) { - throwFault("cannot raise to negative values", "pow"); + throwFault("negative-power", "pow"); } return toBigNumber(toBN(this).pow(value)); @@ -5302,7 +5308,7 @@ var BigNumber = /*#__PURE__*/function () { var value = toBN(other); if (this.isNegative() || value.isNeg()) { - throwFault("cannot 'and' negative values", "and"); + throwFault("unbound-bitwise-result", "and"); } return toBigNumber(toBN(this).and(value)); @@ -5313,7 +5319,7 @@ var BigNumber = /*#__PURE__*/function () { var value = toBN(other); if (this.isNegative() || value.isNeg()) { - throwFault("cannot 'or' negative values", "or"); + throwFault("unbound-bitwise-result", "or"); } return toBigNumber(toBN(this).or(value)); @@ -5324,7 +5330,7 @@ var BigNumber = /*#__PURE__*/function () { var value = toBN(other); if (this.isNegative() || value.isNeg()) { - throwFault("cannot 'xor' negative values", "xor"); + throwFault("unbound-bitwise-result", "xor"); } return toBigNumber(toBN(this).xor(value)); @@ -5333,7 +5339,7 @@ var BigNumber = /*#__PURE__*/function () { key: "mask", value: function mask(value) { if (this.isNegative() || value < 0) { - throwFault("cannot mask negative values", "mask"); + throwFault("negative-width", "mask"); } return toBigNumber(toBN(this).maskn(value)); @@ -5342,7 +5348,7 @@ var BigNumber = /*#__PURE__*/function () { key: "shl", value: function shl(value) { if (this.isNegative() || value < 0) { - throwFault("cannot shift negative values", "shl"); + throwFault("negative-width", "shl"); } return toBigNumber(toBN(this).shln(value)); @@ -5351,7 +5357,7 @@ var BigNumber = /*#__PURE__*/function () { key: "shr", value: function shr(value) { if (this.isNegative() || value < 0) { - throwFault("cannot shift negative values", "shr"); + throwFault("negative-width", "shr"); } return toBigNumber(toBN(this).shrn(value)); @@ -6176,7 +6182,7 @@ __webpack_require__.r(__webpack_exports__); "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "bytes/5.5.0"; +var version = "bytes/5.6.1"; /***/ }), @@ -6299,7 +6305,7 @@ function arrayify(value, options) { if (hex.length % 2) { if (options.hexPad === "left") { - hex = "0x0" + hex.substring(2); + hex = "0" + hex; } else if (options.hexPad === "right") { hex += "0"; } else { @@ -6542,21 +6548,29 @@ function splitSignature(signature) { s: "0x", _vs: "0x", recoveryParam: 0, - v: 0 + v: 0, + yParityAndS: "0x", + compact: "0x" }; if (isBytesLike(signature)) { - var bytes = arrayify(signature); + var bytes = arrayify(signature); // Get the r, s and v - if (bytes.length !== 65) { - logger.throwArgumentError("invalid signature string; must be 65 bytes", "signature", signature); - } // Get the r, s and v + if (bytes.length === 64) { + // EIP-2098; pull the v from the top bit of s and clear it + result.v = 27 + (bytes[32] >> 7); + bytes[32] &= 0x7f; + result.r = hexlify(bytes.slice(0, 32)); + result.s = hexlify(bytes.slice(32, 64)); + } else if (bytes.length === 65) { + result.r = hexlify(bytes.slice(0, 32)); + result.s = hexlify(bytes.slice(32, 64)); + result.v = bytes[64]; + } else { + logger.throwArgumentError("invalid signature string", "signature", signature); + } // Allow a recid to be used as the v - result.r = hexlify(bytes.slice(0, 32)); - result.s = hexlify(bytes.slice(32, 64)); - result.v = bytes[64]; // Allow a recid to be used as the v - if (result.v < 27) { if (result.v === 0 || result.v === 1) { result.v += 27; @@ -6666,6 +6680,8 @@ function splitSignature(signature) { } } + result.yParityAndS = result._vs; + result.compact = result.r + result.yParityAndS.substring(2); return result; } function joinSignature(signature) { @@ -6803,7 +6819,7 @@ var EtherSymbol = "\u039E"; // "\uD835\uDF63"; "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "contracts/5.5.0"; +var version = "contracts/5.6.0"; /***/ }), @@ -6928,7 +6944,8 @@ var allowedTransactionKeys = { accessList: true, maxFeePerGas: true, maxPriorityFeePerGas: true, - customData: true + customData: true, + ccipReadEnabled: true }; function resolveName(resolver, nameOrPromise) { @@ -7211,6 +7228,10 @@ function populateTransaction(contract, fragment, args) { if (ro.customData) { tx.customData = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_6__["shallowCopy"])(ro.customData); + } + + if (ro.ccipReadEnabled) { + tx.ccipReadEnabled = !!ro.ccipReadEnabled; } // Remove the overrides @@ -7223,7 +7244,8 @@ function populateTransaction(contract, fragment, args) { delete overrides.accessList; delete overrides.maxFeePerGas; delete overrides.maxPriorityFeePerGas; - delete overrides.customData; // Make sure there are no stray overrides, which may indicate a + delete overrides.customData; + delete overrides.ccipReadEnabled; // Make sure there are no stray overrides, which may indicate a // typo or using an unsupported key. leftovers = Object.keys(overrides).filter(function (key) { @@ -7241,7 +7263,7 @@ function populateTransaction(contract, fragment, args) { return _context4.abrupt("return", tx); - case 34: + case 36: case "end": return _context4.stop(); } @@ -7808,8 +7830,10 @@ var BaseContract = /*#__PURE__*/function () { operation: "new Contract" }); } - } + } // Swallow bad ENS names to prevent Unhandled Exceptions + + this.resolvedAddress["catch"](function (e) {}); var uniqueNames = {}; var uniqueSignatures = {}; Object.keys(this["interface"].functions).forEach(function (signature) { @@ -8530,7 +8554,7 @@ var ContractFactory = /*#__PURE__*/function () { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "hash/5.5.0"; +var version = "hash/5.6.0"; /***/ }), @@ -8558,7 +8582,7 @@ function id(text) { /*!***********************************************************!*\ !*** ./node_modules/@ethersproject/hash/lib.esm/index.js ***! \***********************************************************/ -/*! exports provided: id, namehash, isValidName, messagePrefix, hashMessage, _TypedDataEncoder */ +/*! exports provided: id, dnsEncode, namehash, isValidName, messagePrefix, hashMessage, _TypedDataEncoder */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -8567,6 +8591,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "id", function() { return _id__WEBPACK_IMPORTED_MODULE_0__["id"]; }); /* harmony import */ var _namehash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./namehash */ "./node_modules/@ethersproject/hash/lib.esm/namehash.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dnsEncode", function() { return _namehash__WEBPACK_IMPORTED_MODULE_1__["dnsEncode"]; }); + /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namehash", function() { return _namehash__WEBPACK_IMPORTED_MODULE_1__["namehash"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isValidName", function() { return _namehash__WEBPACK_IMPORTED_MODULE_1__["isValidName"]; }); @@ -8621,13 +8647,14 @@ function hashMessage(message) { /*!**************************************************************!*\ !*** ./node_modules/@ethersproject/hash/lib.esm/namehash.js ***! \**************************************************************/ -/*! exports provided: isValidName, namehash */ +/*! exports provided: isValidName, namehash, dnsEncode */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidName", function() { return isValidName; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namehash", function() { return namehash; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dnsEncode", function() { return dnsEncode; }); /* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); /* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/strings/lib.esm/index.js"); /* harmony import */ var _ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/keccak256 */ "./node_modules/@ethersproject/keccak256/lib.esm/index.js"); @@ -8680,6 +8707,15 @@ function namehash(name) { return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexlify"])(result); } +function dnsEncode(name) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexlify"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["concat"])(name.split(".").map(function (comp) { + // We jam in an _ prefix to fill in with the length later + // Note: Nameprep throws if the component is over 63 bytes + var bytes = Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_1__["toUtf8Bytes"])("_" + Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_1__["nameprep"])(comp)); + bytes[0] = bytes.length - 1; + return bytes; + }))) + "00"; +} /***/ }), @@ -9361,7 +9397,7 @@ var TypedDataEncoder = /*#__PURE__*/function () { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "hdnode/5.5.0"; +var version = "hdnode/5.6.0"; /***/ }), @@ -9809,7 +9845,7 @@ function getAccountPath(index) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "json-wallets/5.5.0"; +var version = "json-wallets/5.6.0"; /***/ }), @@ -10655,7 +10691,7 @@ function keccak256(data) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "logger/5.5.0"; +var version = "logger/5.6.0"; /***/ }), @@ -10907,6 +10943,48 @@ var Logger = /*#__PURE__*/function () { messageDetails.push("code=".concat(code)); messageDetails.push("version=".concat(this.version)); var reason = message; + var url = ""; + + switch (code) { + case ErrorCode.NUMERIC_FAULT: + { + url = "NUMERIC_FAULT"; + var fault = message; + + switch (fault) { + case "overflow": + case "underflow": + case "division-by-zero": + url += "-" + fault; + break; + + case "negative-power": + case "negative-width": + url += "-unsupported"; + break; + + case "unbound-bitwise-result": + url += "-unbound-result"; + break; + } + + 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: + url = code; + break; + } + + if (url) { + message += " [ See: https:/\/links.ethers.org/v5-errors-" + url + " ]"; + } if (messageDetails.length) { message += " (" + messageDetails.join(", ") + ")"; @@ -11106,7 +11184,7 @@ Logger.levels = LogLevel; "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "networks/5.5.2"; +var version = "networks/5.6.2"; /***/ }), @@ -11141,25 +11219,25 @@ function ethDefaultProvider(network) { var providerList = []; - if (providers.InfuraProvider) { + if (providers.InfuraProvider && options.infura !== "-") { try { providerList.push(new providers.InfuraProvider(network, options.infura)); } catch (error) {} } - if (providers.EtherscanProvider) { + if (providers.EtherscanProvider && options.etherscan !== "-") { try { providerList.push(new providers.EtherscanProvider(network, options.etherscan)); } catch (error) {} } - if (providers.AlchemyProvider) { + if (providers.AlchemyProvider && options.alchemy !== "-") { try { providerList.push(new providers.AlchemyProvider(network, options.alchemy)); } catch (error) {} } - if (providers.PocketProvider) { + if (providers.PocketProvider && options.pocket !== "-") { // These networks are currently faulty on Pocket as their // network does not handle the Berlin hardfork, which is // live on these ones. @@ -11167,7 +11245,7 @@ function ethDefaultProvider(network) { var skip = ["goerli", "ropsten", "rinkeby"]; try { - var provider = new providers.PocketProvider(network); + var provider = new providers.PocketProvider(network, options.pocket); if (provider.network && skip.indexOf(provider.network.name) === -1) { providerList.push(provider); @@ -11175,12 +11253,18 @@ function ethDefaultProvider(network) { } catch (error) {} } - if (providers.CloudflareProvider) { + if (providers.CloudflareProvider && options.cloudflare !== "-") { try { providerList.push(new providers.CloudflareProvider(network)); } catch (error) {} } + if (providers.AnkrProvider && options.ankr !== "-") { + try { + providerList.push(new providers.AnkrProvider(network, options.ankr)); + } catch (error) {} + } + if (providerList.length === 0) { return null; } @@ -11512,7 +11596,7 @@ function pbkdf2(password, salt, iterations, keylen, hashAlgorithm) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "properties/5.5.0"; +var version = "properties/5.6.0"; /***/ }), @@ -11770,10 +11854,10 @@ var version = "providers/5.5.3"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AlchemyWebSocketProvider", function() { return AlchemyWebSocketProvider; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AlchemyProvider", function() { return AlchemyProvider; }); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); /* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatter */ "./node_modules/@ethersproject/providers/lib.esm/formatter.js"); /* harmony import */ var _websocket_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./websocket-provider */ "./node_modules/@ethersproject/providers/lib.esm/websocket-provider.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); /* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); @@ -11957,20 +12041,20 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Event", function() { return Event; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Resolver", function() { return Resolver; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseProvider", function() { return BaseProvider; }); -/* harmony import */ var _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-provider */ "./node_modules/@ethersproject/abstract-provider/lib.esm/index.js"); -/* harmony import */ var _ethersproject_basex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/basex */ "./node_modules/@ethersproject/basex/lib.esm/index.js"); -/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); -/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); -/* harmony import */ var _ethersproject_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/constants */ "./node_modules/@ethersproject/constants/lib.esm/index.js"); -/* harmony import */ var _ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/hash */ "./node_modules/@ethersproject/hash/lib.esm/index.js"); -/* harmony import */ var _ethersproject_networks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/networks */ "./node_modules/@ethersproject/networks/lib.esm/index.js"); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); -/* harmony import */ var _ethersproject_sha2__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/sha2 */ "./node_modules/@ethersproject/sha2/lib.esm/index.js"); -/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/strings/lib.esm/index.js"); -/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-provider */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-provider/lib.esm/index.js"); +/* harmony import */ var _ethersproject_basex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/basex */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/basex/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/constants */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/index.js"); +/* harmony import */ var _ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/hash */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/index.js"); +/* harmony import */ var _ethersproject_networks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/networks */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/networks/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_sha2__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/sha2 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/index.js"); +/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/index.js"); /* harmony import */ var bech32__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! bech32 */ "./node_modules/bech32/index.js"); /* harmony import */ var bech32__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(bech32__WEBPACK_IMPORTED_MODULE_11__); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); /* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./formatter */ "./node_modules/@ethersproject/providers/lib.esm/formatter.js"); @@ -15641,7 +15725,7 @@ var BaseProvider = /*#__PURE__*/function (_Provider) { __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CloudflareProvider", function() { return CloudflareProvider; }); /* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); @@ -15804,12 +15888,12 @@ var CloudflareProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EtherscanProvider", function() { return EtherscanProvider; }); -/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); -/* harmony import */ var _ethersproject_transactions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/transactions */ "./node_modules/@ethersproject/transactions/lib.esm/index.js"); -/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_transactions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/transactions */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/transactions/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/index.js"); /* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formatter */ "./node_modules/@ethersproject/providers/lib.esm/formatter.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); /* harmony import */ var _base_provider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./base-provider */ "./node_modules/@ethersproject/providers/lib.esm/base-provider.js"); @@ -16561,15 +16645,15 @@ var EtherscanProvider = /*#__PURE__*/function (_BaseProvider) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FallbackProvider", function() { return FallbackProvider; }); -/* harmony import */ var _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-provider */ "./node_modules/@ethersproject/abstract-provider/lib.esm/index.js"); -/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); -/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); -/* harmony import */ var _ethersproject_random__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/random */ "./node_modules/@ethersproject/random/lib.esm/index.js"); -/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-provider */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-provider/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_random__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/random */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/index.js"); /* harmony import */ var _base_provider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base-provider */ "./node_modules/@ethersproject/providers/lib.esm/base-provider.js"); /* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./formatter */ "./node_modules/@ethersproject/providers/lib.esm/formatter.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); @@ -17575,13 +17659,13 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCommunityResourcable", function() { return isCommunityResourcable; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCommunityResource", function() { return isCommunityResource; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showThrottleMessage", function() { return showThrottleMessage; }); -/* harmony import */ var _ethersproject_address__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/address */ "./node_modules/@ethersproject/address/lib.esm/index.js"); -/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); -/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); -/* harmony import */ var _ethersproject_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/constants */ "./node_modules/@ethersproject/constants/lib.esm/index.js"); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); -/* harmony import */ var _ethersproject_transactions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/transactions */ "./node_modules/@ethersproject/transactions/lib.esm/index.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_address__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/address */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/address/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/constants */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_transactions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/transactions */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/transactions/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); @@ -18168,10 +18252,10 @@ function showThrottleMessage() { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultProvider", function() { return getDefaultProvider; }); -/* harmony import */ var _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-provider */ "./node_modules/@ethersproject/abstract-provider/lib.esm/index.js"); +/* harmony import */ var _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-provider */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-provider/lib.esm/index.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Provider", function() { return _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__["Provider"]; }); -/* harmony import */ var _ethersproject_networks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/networks */ "./node_modules/@ethersproject/networks/lib.esm/index.js"); +/* harmony import */ var _ethersproject_networks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/networks */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/networks/lib.esm/index.js"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNetwork", function() { return _ethersproject_networks__WEBPACK_IMPORTED_MODULE_1__["getNetwork"]; }); /* harmony import */ var _base_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base-provider */ "./node_modules/@ethersproject/providers/lib.esm/base-provider.js"); @@ -18235,7 +18319,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Formatter", function() { return _formatter__WEBPACK_IMPORTED_MODULE_16__["Formatter"]; }); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); @@ -18326,10 +18410,10 @@ function getDefaultProvider(network, options) { __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfuraWebSocketProvider", function() { return InfuraWebSocketProvider; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfuraProvider", function() { return InfuraProvider; }); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); /* harmony import */ var _websocket_provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./websocket-provider */ "./node_modules/@ethersproject/providers/lib.esm/websocket-provider.js"); /* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatter */ "./node_modules/@ethersproject/providers/lib.esm/formatter.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); /* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); @@ -18558,8 +18642,8 @@ var IpcProvider = null; "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonRpcBatchProvider", function() { return JsonRpcBatchProvider; }); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); -/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/index.js"); /* harmony import */ var _json_rpc_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./json-rpc-provider */ "./node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js"); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } @@ -18702,15 +18786,15 @@ var JsonRpcBatchProvider = /*#__PURE__*/function (_JsonRpcProvider) { __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonRpcSigner", function() { return JsonRpcSigner; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonRpcProvider", function() { return JsonRpcProvider; }); -/* harmony import */ var _ethersproject_abstract_signer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-signer */ "./node_modules/@ethersproject/abstract-signer/lib.esm/index.js"); -/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); -/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); -/* harmony import */ var _ethersproject_hash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/hash */ "./node_modules/@ethersproject/hash/lib.esm/index.js"); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); -/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/strings/lib.esm/index.js"); -/* harmony import */ var _ethersproject_transactions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/transactions */ "./node_modules/@ethersproject/transactions/lib.esm/index.js"); -/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_abstract_signer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-signer */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-signer/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_hash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/hash */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/index.js"); +/* harmony import */ var _ethersproject_transactions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/transactions */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/transactions/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); /* harmony import */ var _base_provider__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./base-provider */ "./node_modules/@ethersproject/providers/lib.esm/base-provider.js"); @@ -19791,7 +19875,7 @@ var JsonRpcProvider = /*#__PURE__*/function (_BaseProvider) { __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodesmithProvider", function() { return NodesmithProvider; }); /* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); /* istanbul ignore file */ @@ -19894,8 +19978,8 @@ var NodesmithProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PocketProvider", function() { return PocketProvider; }); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); /* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); @@ -20077,8 +20161,8 @@ var PocketProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) { __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StaticJsonRpcProvider", function() { return StaticJsonRpcProvider; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UrlJsonRpcProvider", function() { return UrlJsonRpcProvider; }); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); /* harmony import */ var _json_rpc_provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./json-rpc-provider */ "./node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js"); @@ -20309,8 +20393,8 @@ var UrlJsonRpcProvider = /*#__PURE__*/function (_StaticJsonRpcProvide) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Web3Provider", function() { return Web3Provider; }); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); /* harmony import */ var _json_rpc_provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./json-rpc-provider */ "./node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js"); @@ -20519,11 +20603,11 @@ var Web3Provider = /*#__PURE__*/function (_JsonRpcProvider) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebSocketProvider", function() { return WebSocketProvider; }); -/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); -/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); /* harmony import */ var _json_rpc_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./json-rpc-provider */ "./node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js"); /* harmony import */ var _ws__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ws */ "./node_modules/@ethersproject/providers/lib.esm/ws.js"); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); @@ -21010,7 +21094,7 @@ var WebSocketProvider = /*#__PURE__*/function (_JsonRpcProvider) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebSocket", function() { return WS; }); -/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); /* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/lib.esm/_version.js"); @@ -21038,6 +21122,9809 @@ try { +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-provider/lib.esm/_version.js": +/*!*****************************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-provider/lib.esm/_version.js ***! + \*****************************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "abstract-provider/5.5.1"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-provider/lib.esm/index.js": +/*!**************************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-provider/lib.esm/index.js ***! + \**************************************************************************************************************/ +/*! exports provided: ForkEvent, BlockForkEvent, TransactionForkEvent, TransactionOrderForkEvent, Provider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ForkEvent", function() { return ForkEvent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BlockForkEvent", function() { return BlockForkEvent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TransactionForkEvent", function() { return TransactionForkEvent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TransactionOrderForkEvent", function() { return TransactionOrderForkEvent; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Provider", function() { return Provider; }); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-provider/lib.esm/_version.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__["Logger"](_version__WEBPACK_IMPORTED_MODULE_4__["version"]); +; +; //export type CallTransactionable = { +// call(transaction: TransactionRequest): Promise; +//}; + +var ForkEvent = /*#__PURE__*/function (_Description) { + _inherits(ForkEvent, _Description); + + var _super = _createSuper(ForkEvent); + + function ForkEvent() { + _classCallCheck(this, ForkEvent); + + return _super.apply(this, arguments); + } + + _createClass(ForkEvent, null, [{ + key: "isForkEvent", + value: function isForkEvent(value) { + return !!(value && value._isForkEvent); + } + }]); + + return ForkEvent; +}(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["Description"]); +var BlockForkEvent = /*#__PURE__*/function (_ForkEvent) { + _inherits(BlockForkEvent, _ForkEvent); + + var _super2 = _createSuper(BlockForkEvent); + + function BlockForkEvent(blockHash, expiry) { + _classCallCheck(this, BlockForkEvent); + + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isHexString"])(blockHash, 32)) { + logger.throwArgumentError("invalid blockHash", "blockHash", blockHash); + } + + return _super2.call(this, { + _isForkEvent: true, + _isBlockForkEvent: true, + expiry: expiry || 0, + blockHash: blockHash + }); + } + + return _createClass(BlockForkEvent); +}(ForkEvent); +var TransactionForkEvent = /*#__PURE__*/function (_ForkEvent2) { + _inherits(TransactionForkEvent, _ForkEvent2); + + var _super3 = _createSuper(TransactionForkEvent); + + function TransactionForkEvent(hash, expiry) { + _classCallCheck(this, TransactionForkEvent); + + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isHexString"])(hash, 32)) { + logger.throwArgumentError("invalid transaction hash", "hash", hash); + } + + return _super3.call(this, { + _isForkEvent: true, + _isTransactionForkEvent: true, + expiry: expiry || 0, + hash: hash + }); + } + + return _createClass(TransactionForkEvent); +}(ForkEvent); +var TransactionOrderForkEvent = /*#__PURE__*/function (_ForkEvent3) { + _inherits(TransactionOrderForkEvent, _ForkEvent3); + + var _super4 = _createSuper(TransactionOrderForkEvent); + + function TransactionOrderForkEvent(beforeHash, afterHash, expiry) { + _classCallCheck(this, TransactionOrderForkEvent); + + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isHexString"])(beforeHash, 32)) { + logger.throwArgumentError("invalid transaction hash", "beforeHash", beforeHash); + } + + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isHexString"])(afterHash, 32)) { + logger.throwArgumentError("invalid transaction hash", "afterHash", afterHash); + } + + return _super4.call(this, { + _isForkEvent: true, + _isTransactionOrderForkEvent: true, + expiry: expiry || 0, + beforeHash: beforeHash, + afterHash: afterHash + }); + } + + return _createClass(TransactionOrderForkEvent); +}(ForkEvent); /////////////////////////////// +// Exported Abstracts + +var Provider = /*#__PURE__*/function () { + function Provider() { + _classCallCheck(this, Provider); + + logger.checkAbstract(this instanceof Provider ? this.constructor : void 0, Provider); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["defineReadOnly"])(this, "_isProvider", true); + } + + _createClass(Provider, [{ + key: "getFeeData", + value: function getFeeData() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var _yield$resolvePropert, block, gasPrice, maxFeePerGas, maxPriorityFeePerGas; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + _context.next = 2; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["resolveProperties"])({ + block: this.getBlock("latest"), + gasPrice: this.getGasPrice()["catch"](function (error) { + // @TODO: Why is this now failing on Calaveras? + //console.log(error); + return null; + }) + }); + + case 2: + _yield$resolvePropert = _context.sent; + block = _yield$resolvePropert.block; + gasPrice = _yield$resolvePropert.gasPrice; + maxFeePerGas = null, maxPriorityFeePerGas = null; + + if (block && block.baseFeePerGas) { + // We may want to compute this more accurately in the future, + // using the formula "check if the base fee is correct". + // See: https://eips.ethereum.org/EIPS/eip-1559 + maxPriorityFeePerGas = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from("2500000000"); + maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas); + } + + return _context.abrupt("return", { + maxFeePerGas: maxFeePerGas, + maxPriorityFeePerGas: maxPriorityFeePerGas, + gasPrice: gasPrice + }); + + case 8: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + } // Alias for "on" + + }, { + key: "addListener", + value: function addListener(eventName, listener) { + return this.on(eventName, listener); + } // Alias for "off" + + }, { + key: "removeListener", + value: function removeListener(eventName, listener) { + return this.off(eventName, listener); + } + }], [{ + key: "isProvider", + value: function isProvider(value) { + return !!(value && value._isProvider); + } + }]); + + return Provider; +}(); + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-signer/lib.esm/_version.js": +/*!***************************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-signer/lib.esm/_version.js ***! + \***************************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "abstract-signer/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-signer/lib.esm/index.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-signer/lib.esm/index.js ***! + \************************************************************************************************************/ +/*! exports provided: Signer, VoidSigner */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Signer", function() { return Signer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VoidSigner", function() { return VoidSigner; }); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/abstract-signer/lib.esm/_version.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); +var allowedTransactionKeys = ["accessList", "chainId", "customData", "data", "from", "gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "to", "type", "value"]; +var forwardErrors = [_ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.INSUFFICIENT_FUNDS, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.NONCE_EXPIRED, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.REPLACEMENT_UNDERPRICED]; +; +; +var Signer = /*#__PURE__*/function () { + /////////////////// + // Sub-classes MUST call super + function Signer() { + _classCallCheck(this, Signer); + + logger.checkAbstract(this instanceof Signer ? this.constructor : void 0, Signer); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(this, "_isSigner", true); + } /////////////////// + // Sub-classes MAY override these + + + _createClass(Signer, [{ + key: "getBalance", + value: function getBalance(blockTag) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + this._checkProvider("getBalance"); + + _context.next = 3; + return this.provider.getBalance(this.getAddress(), blockTag); + + case 3: + return _context.abrupt("return", _context.sent); + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + } + }, { + key: "getTransactionCount", + value: function getTransactionCount(blockTag) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + this._checkProvider("getTransactionCount"); + + _context2.next = 3; + return this.provider.getTransactionCount(this.getAddress(), blockTag); + + case 3: + return _context2.abrupt("return", _context2.sent); + + case 4: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + } // Populates "from" if unspecified, and estimates the gas for the transaction + + }, { + key: "estimateGas", + value: function estimateGas(transaction) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var tx; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + this._checkProvider("estimateGas"); + + _context3.next = 3; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["resolveProperties"])(this.checkTransaction(transaction)); + + case 3: + tx = _context3.sent; + _context3.next = 6; + return this.provider.estimateGas(tx); + + case 6: + return _context3.abrupt("return", _context3.sent); + + case 7: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + } // Populates "from" if unspecified, and calls with the transaction + + }, { + key: "call", + value: function call(transaction, blockTag) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { + var tx; + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + this._checkProvider("call"); + + _context4.next = 3; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["resolveProperties"])(this.checkTransaction(transaction)); + + case 3: + tx = _context4.sent; + _context4.next = 6; + return this.provider.call(tx, blockTag); + + case 6: + return _context4.abrupt("return", _context4.sent); + + case 7: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + } // Populates all fields in a transaction, signs it and sends it to the network + + }, { + key: "sendTransaction", + value: function sendTransaction(transaction) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { + var tx, signedTx; + return regeneratorRuntime.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + this._checkProvider("sendTransaction"); + + _context5.next = 3; + return this.populateTransaction(transaction); + + case 3: + tx = _context5.sent; + _context5.next = 6; + return this.signTransaction(tx); + + case 6: + signedTx = _context5.sent; + _context5.next = 9; + return this.provider.sendTransaction(signedTx); + + case 9: + return _context5.abrupt("return", _context5.sent); + + case 10: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + } + }, { + key: "getChainId", + value: function getChainId() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { + var network; + return regeneratorRuntime.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + this._checkProvider("getChainId"); + + _context6.next = 3; + return this.provider.getNetwork(); + + case 3: + network = _context6.sent; + return _context6.abrupt("return", network.chainId); + + case 5: + case "end": + return _context6.stop(); + } + } + }, _callee6, this); + })); + } + }, { + key: "getGasPrice", + value: function getGasPrice() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { + return regeneratorRuntime.wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + this._checkProvider("getGasPrice"); + + _context7.next = 3; + return this.provider.getGasPrice(); + + case 3: + return _context7.abrupt("return", _context7.sent); + + case 4: + case "end": + return _context7.stop(); + } + } + }, _callee7, this); + })); + } + }, { + key: "getFeeData", + value: function getFeeData() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { + return regeneratorRuntime.wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + this._checkProvider("getFeeData"); + + _context8.next = 3; + return this.provider.getFeeData(); + + case 3: + return _context8.abrupt("return", _context8.sent); + + case 4: + case "end": + return _context8.stop(); + } + } + }, _callee8, this); + })); + } + }, { + key: "resolveName", + value: function resolveName(name) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { + return regeneratorRuntime.wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + this._checkProvider("resolveName"); + + _context9.next = 3; + return this.provider.resolveName(name); + + case 3: + return _context9.abrupt("return", _context9.sent); + + case 4: + case "end": + return _context9.stop(); + } + } + }, _callee9, this); + })); + } // Checks a transaction does not contain invalid keys and if + // no "from" is provided, populates it. + // - does NOT require a provider + // - adds "from" is not present + // - returns a COPY (safe to mutate the result) + // By default called from: (overriding these prevents it) + // - call + // - estimateGas + // - populateTransaction (and therefor sendTransaction) + + }, { + key: "checkTransaction", + value: function checkTransaction(transaction) { + for (var key in transaction) { + if (allowedTransactionKeys.indexOf(key) === -1) { + logger.throwArgumentError("invalid transaction key: " + key, "transaction", transaction); + } + } + + var tx = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["shallowCopy"])(transaction); + + if (tx.from == null) { + tx.from = this.getAddress(); + } else { + // Make sure any provided address matches this signer + tx.from = Promise.all([Promise.resolve(tx.from), this.getAddress()]).then(function (result) { + if (result[0].toLowerCase() !== result[1].toLowerCase()) { + logger.throwArgumentError("from address mismatch", "transaction", transaction); + } + + return result[0]; + }); + } + + return tx; + } // Populates ALL keys for a transaction and checks that "from" matches + // this Signer. Should be used by sendTransaction but NOT by signTransaction. + // By default called from: (overriding these prevents it) + // - sendTransaction + // + // Notes: + // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas + + }, { + key: "populateTransaction", + value: function populateTransaction(transaction) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { + var _this = this; + + var tx, hasEip1559, feeData, gasPrice; + return regeneratorRuntime.wrap(function _callee11$(_context11) { + while (1) { + switch (_context11.prev = _context11.next) { + case 0: + _context11.next = 2; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["resolveProperties"])(this.checkTransaction(transaction)); + + case 2: + tx = _context11.sent; + + if (tx.to != null) { + tx.to = Promise.resolve(tx.to).then(function (to) { + return __awaiter(_this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { + var address; + return regeneratorRuntime.wrap(function _callee10$(_context10) { + while (1) { + switch (_context10.prev = _context10.next) { + case 0: + if (!(to == null)) { + _context10.next = 2; + break; + } + + return _context10.abrupt("return", null); + + case 2: + _context10.next = 4; + return this.resolveName(to); + + case 4: + address = _context10.sent; + + if (address == null) { + logger.throwArgumentError("provided ENS name resolves to null", "tx.to", to); + } + + return _context10.abrupt("return", address); + + case 7: + case "end": + return _context10.stop(); + } + } + }, _callee10, this); + })); + }); // Prevent this error from causing an UnhandledPromiseException + + tx.to["catch"](function (error) {}); + } // Do not allow mixing pre-eip-1559 and eip-1559 properties + + + hasEip1559 = tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null; + + if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) { + logger.throwArgumentError("eip-1559 transaction do not support gasPrice", "transaction", transaction); + } else if ((tx.type === 0 || tx.type === 1) && hasEip1559) { + logger.throwArgumentError("pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas", "transaction", transaction); + } + + if (!((tx.type === 2 || tx.type == null) && tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) { + _context11.next = 10; + break; + } + + // Fully-formed EIP-1559 transaction (skip getFeeData) + tx.type = 2; + _context11.next = 18; + break; + + case 10: + if (!(tx.type === 0 || tx.type === 1)) { + _context11.next = 14; + break; + } + + // Explicit Legacy or EIP-2930 transaction + // Populate missing gasPrice + if (tx.gasPrice == null) { + tx.gasPrice = this.getGasPrice(); + } + + _context11.next = 18; + break; + + case 14: + _context11.next = 16; + return this.getFeeData(); + + case 16: + feeData = _context11.sent; + + if (tx.type == null) { + // We need to auto-detect the intended type of this transaction... + if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) { + // The network supports EIP-1559! + // Upgrade transaction from null to eip-1559 + tx.type = 2; + + if (tx.gasPrice != null) { + // Using legacy gasPrice property on an eip-1559 network, + // so use gasPrice as both fee properties + gasPrice = tx.gasPrice; + delete tx.gasPrice; + tx.maxFeePerGas = gasPrice; + tx.maxPriorityFeePerGas = gasPrice; + } else { + // Populate missing fee data + if (tx.maxFeePerGas == null) { + tx.maxFeePerGas = feeData.maxFeePerGas; + } + + if (tx.maxPriorityFeePerGas == null) { + tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; + } + } + } else if (feeData.gasPrice != null) { + // Network doesn't support EIP-1559... + // ...but they are trying to use EIP-1559 properties + if (hasEip1559) { + logger.throwError("network does not support EIP-1559", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "populateTransaction" + }); + } // Populate missing fee data + + + if (tx.gasPrice == null) { + tx.gasPrice = feeData.gasPrice; + } // Explicitly set untyped transaction to legacy + + + tx.type = 0; + } else { + // getFeeData has failed us. + logger.throwError("failed to get consistent fee data", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "signer.getFeeData" + }); + } + } else if (tx.type === 2) { + // Explicitly using EIP-1559 + // Populate missing fee data + if (tx.maxFeePerGas == null) { + tx.maxFeePerGas = feeData.maxFeePerGas; + } + + if (tx.maxPriorityFeePerGas == null) { + tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas; + } + } + + case 18: + if (tx.nonce == null) { + tx.nonce = this.getTransactionCount("pending"); + } + + if (tx.gasLimit == null) { + tx.gasLimit = this.estimateGas(tx)["catch"](function (error) { + if (forwardErrors.indexOf(error.code) >= 0) { + throw error; + } + + return logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNPREDICTABLE_GAS_LIMIT, { + error: error, + tx: tx + }); + }); + } + + if (tx.chainId == null) { + tx.chainId = this.getChainId(); + } else { + tx.chainId = Promise.all([Promise.resolve(tx.chainId), this.getChainId()]).then(function (results) { + if (results[1] !== 0 && results[0] !== results[1]) { + logger.throwArgumentError("chainId address mismatch", "transaction", transaction); + } + + return results[0]; + }); + } + + _context11.next = 23; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["resolveProperties"])(tx); + + case 23: + return _context11.abrupt("return", _context11.sent); + + case 24: + case "end": + return _context11.stop(); + } + } + }, _callee11, this); + })); + } /////////////////// + // Sub-classes SHOULD leave these alone + + }, { + key: "_checkProvider", + value: function _checkProvider(operation) { + if (!this.provider) { + logger.throwError("missing provider", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: operation || "_checkProvider" + }); + } + } + }], [{ + key: "isSigner", + value: function isSigner(value) { + return !!(value && value._isSigner); + } + }]); + + return Signer; +}(); +var VoidSigner = /*#__PURE__*/function (_Signer) { + _inherits(VoidSigner, _Signer); + + var _super = _createSuper(VoidSigner); + + function VoidSigner(address, provider) { + var _this2; + + _classCallCheck(this, VoidSigner); + + logger.checkNew(this instanceof VoidSigner ? this.constructor : void 0, VoidSigner); + _this2 = _super.call(this); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this2), "address", address); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this2), "provider", provider || null); + return _this2; + } + + _createClass(VoidSigner, [{ + key: "getAddress", + value: function getAddress() { + return Promise.resolve(this.address); + } + }, { + key: "_fail", + value: function _fail(message, operation) { + return Promise.resolve().then(function () { + logger.throwError(message, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: operation + }); + }); + } + }, { + key: "signMessage", + value: function signMessage(message) { + return this._fail("VoidSigner cannot sign messages", "signMessage"); + } + }, { + key: "signTransaction", + value: function signTransaction(transaction) { + return this._fail("VoidSigner cannot sign transactions", "signTransaction"); + } + }, { + key: "_signTypedData", + value: function _signTypedData(domain, types, value) { + return this._fail("VoidSigner cannot sign typed data", "signTypedData"); + } + }, { + key: "connect", + value: function connect(provider) { + return new VoidSigner(this.address, provider); + } + }]); + + return VoidSigner; +}(Signer); + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/address/lib.esm/_version.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/address/lib.esm/_version.js ***! + \*******************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "address/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/address/lib.esm/index.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/address/lib.esm/index.js ***! + \****************************************************************************************************/ +/*! exports provided: getAddress, isAddress, getIcapAddress, getContractAddress, getCreate2Address */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAddress", function() { return getAddress; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isAddress", function() { return isAddress; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getIcapAddress", function() { return getIcapAddress; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getContractAddress", function() { return getContractAddress; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCreate2Address", function() { return getCreate2Address; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/keccak256 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/keccak256/lib.esm/index.js"); +/* harmony import */ var _ethersproject_rlp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/rlp */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/rlp/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/address/lib.esm/_version.js"); + + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"](_version__WEBPACK_IMPORTED_MODULE_5__["version"]); + +function getChecksumAddress(address) { + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["isHexString"])(address, 20)) { + logger.throwArgumentError("invalid address", "address", address); + } + + address = address.toLowerCase(); + var chars = address.substring(2).split(""); + var expanded = new Uint8Array(40); + + for (var i = 0; i < 40; i++) { + expanded[i] = chars[i].charCodeAt(0); + } + + var hashed = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_2__["keccak256"])(expanded)); + + for (var _i = 0; _i < 40; _i += 2) { + if (hashed[_i >> 1] >> 4 >= 8) { + chars[_i] = chars[_i].toUpperCase(); + } + + if ((hashed[_i >> 1] & 0x0f) >= 8) { + chars[_i + 1] = chars[_i + 1].toUpperCase(); + } + } + + return "0x" + chars.join(""); +} // Shims for environments that are missing some required constants and functions + + +var MAX_SAFE_INTEGER = 0x1fffffffffffff; + +function log10(x) { + if (Math.log10) { + return Math.log10(x); + } + + return Math.log(x) / Math.LN10; +} // See: https://en.wikipedia.org/wiki/International_Bank_Account_Number +// Create lookup table + + +var ibanLookup = {}; + +for (var i = 0; i < 10; i++) { + ibanLookup[String(i)] = String(i); +} + +for (var _i2 = 0; _i2 < 26; _i2++) { + ibanLookup[String.fromCharCode(65 + _i2)] = String(10 + _i2); +} // How many decimal digits can we process? (for 64-bit float, this is 15) + + +var safeDigits = Math.floor(log10(MAX_SAFE_INTEGER)); + +function ibanChecksum(address) { + address = address.toUpperCase(); + address = address.substring(4) + address.substring(0, 2) + "00"; + var expanded = address.split("").map(function (c) { + return ibanLookup[c]; + }).join(""); // Javascript can handle integers safely up to 15 (decimal) digits + + while (expanded.length >= safeDigits) { + var block = expanded.substring(0, safeDigits); + expanded = parseInt(block, 10) % 97 + expanded.substring(block.length); + } + + var checksum = String(98 - parseInt(expanded, 10) % 97); + + while (checksum.length < 2) { + checksum = "0" + checksum; + } + + return checksum; +} + +; +function getAddress(address) { + var result = null; + + if (typeof address !== "string") { + logger.throwArgumentError("invalid address", "address", address); + } + + if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) { + // Missing the 0x prefix + if (address.substring(0, 2) !== "0x") { + address = "0x" + address; + } + + result = getChecksumAddress(address); // It is a checksummed address with a bad checksum + + if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) { + logger.throwArgumentError("bad address checksum", "address", address); + } // Maybe ICAP? (we only support direct mode) + + } else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) { + // It is an ICAP address with a bad checksum + if (address.substring(2, 4) !== ibanChecksum(address)) { + logger.throwArgumentError("bad icap checksum", "address", address); + } + + result = Object(_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["_base36To16"])(address.substring(4)); + + while (result.length < 40) { + result = "0" + result; + } + + result = getChecksumAddress("0x" + result); + } else { + logger.throwArgumentError("invalid address", "address", address); + } + + return result; +} +function isAddress(address) { + try { + getAddress(address); + return true; + } catch (error) {} + + return false; +} +function getIcapAddress(address) { + var base36 = Object(_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["_base16To36"])(getAddress(address).substring(2)).toUpperCase(); + + while (base36.length < 30) { + base36 = "0" + base36; + } + + return "XE" + ibanChecksum("XE00" + base36) + base36; +} // http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed + +function getContractAddress(transaction) { + var from = null; + + try { + from = getAddress(transaction.from); + } catch (error) { + logger.throwArgumentError("missing from address", "transaction", transaction); + } + + var nonce = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["stripZeros"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(transaction.nonce).toHexString())); + return getAddress(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexDataSlice"])(Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_2__["keccak256"])(Object(_ethersproject_rlp__WEBPACK_IMPORTED_MODULE_3__["encode"])([from, nonce])), 12)); +} +function getCreate2Address(from, salt, initCodeHash) { + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexDataLength"])(salt) !== 32) { + logger.throwArgumentError("salt must be 32 bytes", "salt", salt); + } + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexDataLength"])(initCodeHash) !== 32) { + logger.throwArgumentError("initCodeHash must be 32 bytes", "initCodeHash", initCodeHash); + } + + return getAddress(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexDataSlice"])(Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_2__["keccak256"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["concat"])(["0xff", getAddress(from), salt, initCodeHash])), 12)); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/base64/lib.esm/base64.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/base64/lib.esm/base64.js ***! + \****************************************************************************************************/ +/*! exports provided: decode, encode */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decode", function() { return decode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encode", function() { return encode; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); + + + +function decode(textData) { + textData = atob(textData); + var data = []; + + for (var i = 0; i < textData.length; i++) { + data.push(textData.charCodeAt(i)); + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(data); +} +function encode(data) { + data = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(data); + var textData = ""; + + for (var i = 0; i < data.length; i++) { + textData += String.fromCharCode(data[i]); + } + + return btoa(textData); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/base64/lib.esm/index.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/base64/lib.esm/index.js ***! + \***************************************************************************************************/ +/*! exports provided: decode, encode */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base64 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/base64/lib.esm/base64.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "decode", function() { return _base64__WEBPACK_IMPORTED_MODULE_0__["decode"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "encode", function() { return _base64__WEBPACK_IMPORTED_MODULE_0__["encode"]; }); + + + + + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/basex/lib.esm/index.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/basex/lib.esm/index.js ***! + \**************************************************************************************************/ +/*! exports provided: BaseX, Base32, Base58 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseX", function() { return BaseX; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Base32", function() { return Base32; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Base58", function() { return Base58; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +/** + * var basex = require("base-x"); + * + * This implementation is heavily based on base-x. The main reason to + * deviate was to prevent the dependency of Buffer. + * + * Contributors: + * + * base-x encoding + * Forked from https://github.com/cryptocoinjs/bs58 + * Originally written by Mike Hearn for BitcoinJ + * Copyright (c) 2011 Google Inc + * Ported to JavaScript by Stefan Thomas + * Merged Buffer refactorings from base58-native by Stephen Pair + * Copyright (c) 2013 BitPay Inc + * + * The MIT License (MIT) + * + * Copyright base-x contributors (c) 2016 + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + * IN THE SOFTWARE. + * + */ + + +var BaseX = /*#__PURE__*/function () { + function BaseX(alphabet) { + _classCallCheck(this, BaseX); + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(this, "alphabet", alphabet); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(this, "base", alphabet.length); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(this, "_alphabetMap", {}); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(this, "_leader", alphabet.charAt(0)); // pre-compute lookup table + + for (var i = 0; i < alphabet.length; i++) { + this._alphabetMap[alphabet.charAt(i)] = i; + } + } + + _createClass(BaseX, [{ + key: "encode", + value: function encode(value) { + var source = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(value); + + if (source.length === 0) { + return ""; + } + + var digits = [0]; + + for (var i = 0; i < source.length; ++i) { + var carry = source[i]; + + for (var j = 0; j < digits.length; ++j) { + carry += digits[j] << 8; + digits[j] = carry % this.base; + carry = carry / this.base | 0; + } + + while (carry > 0) { + digits.push(carry % this.base); + carry = carry / this.base | 0; + } + } + + var string = ""; // deal with leading zeros + + for (var k = 0; source[k] === 0 && k < source.length - 1; ++k) { + string += this._leader; + } // convert digits to a string + + + for (var q = digits.length - 1; q >= 0; --q) { + string += this.alphabet[digits[q]]; + } + + return string; + } + }, { + key: "decode", + value: function decode(value) { + if (typeof value !== "string") { + throw new TypeError("Expected String"); + } + + var bytes = []; + + if (value.length === 0) { + return new Uint8Array(bytes); + } + + bytes.push(0); + + for (var i = 0; i < value.length; i++) { + var _byte = this._alphabetMap[value[i]]; + + if (_byte === undefined) { + throw new Error("Non-base" + this.base + " character"); + } + + var carry = _byte; + + for (var j = 0; j < bytes.length; ++j) { + carry += bytes[j] * this.base; + bytes[j] = carry & 0xff; + carry >>= 8; + } + + while (carry > 0) { + bytes.push(carry & 0xff); + carry >>= 8; + } + } // deal with leading zeros + + + for (var k = 0; value[k] === this._leader && k < value.length - 1; ++k) { + bytes.push(0); + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(new Uint8Array(bytes.reverse())); + } + }]); + + return BaseX; +}(); +var Base32 = new BaseX("abcdefghijklmnopqrstuvwxyz234567"); +var Base58 = new BaseX("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"); + //console.log(Base58.decode("Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj")) +//console.log(Base58.encode(Base58.decode("Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj"))) + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/_version.js": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/_version.js ***! + \*********************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "bignumber/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js ***! + \**********************************************************************************************************/ +/*! exports provided: isBigNumberish, BigNumber, _base36To16, _base16To36 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBigNumberish", function() { return isBigNumberish; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BigNumber", function() { return BigNumber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_base36To16", function() { return _base36To16; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_base16To36", function() { return _base16To36; }); +/* harmony import */ var bn_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); +/* harmony import */ var bn_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bn_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/_version.js"); + +/** + * BigNumber + * + * A wrapper around the BN.js object. We use the BN.js library + * because it is used by elliptic, so it is required regardless. + * + */ + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + + +var BN = bn_js__WEBPACK_IMPORTED_MODULE_0___default.a.BN; + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_2__["Logger"](_version__WEBPACK_IMPORTED_MODULE_3__["version"]); +var _constructorGuard = {}; +var MAX_SAFE = 0x1fffffffffffff; +function isBigNumberish(value) { + return value != null && (BigNumber.isBigNumber(value) || typeof value === "number" && value % 1 === 0 || typeof value === "string" && !!value.match(/^-?[0-9]+$/) || Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isHexString"])(value) || typeof value === "bigint" || Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isBytes"])(value)); +} // Only warn about passing 10 into radix once + +var _warnedToStringRadix = false; +var BigNumber = /*#__PURE__*/function () { + function BigNumber(constructorGuard, hex) { + _classCallCheck(this, BigNumber); + + logger.checkNew(this instanceof BigNumber ? this.constructor : void 0, BigNumber); + + if (constructorGuard !== _constructorGuard) { + logger.throwError("cannot call constructor directly; use BigNumber.from", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_2__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "new (BigNumber)" + }); + } + + this._hex = hex; + this._isBigNumber = true; + Object.freeze(this); + } + + _createClass(BigNumber, [{ + key: "fromTwos", + value: function fromTwos(value) { + return toBigNumber(toBN(this).fromTwos(value)); + } + }, { + key: "toTwos", + value: function toTwos(value) { + return toBigNumber(toBN(this).toTwos(value)); + } + }, { + key: "abs", + value: function abs() { + if (this._hex[0] === "-") { + return BigNumber.from(this._hex.substring(1)); + } + + return this; + } + }, { + key: "add", + value: function add(other) { + return toBigNumber(toBN(this).add(toBN(other))); + } + }, { + key: "sub", + value: function sub(other) { + return toBigNumber(toBN(this).sub(toBN(other))); + } + }, { + key: "div", + value: function div(other) { + var o = BigNumber.from(other); + + if (o.isZero()) { + throwFault("division by zero", "div"); + } + + return toBigNumber(toBN(this).div(toBN(other))); + } + }, { + key: "mul", + value: function mul(other) { + return toBigNumber(toBN(this).mul(toBN(other))); + } + }, { + key: "mod", + value: function mod(other) { + var value = toBN(other); + + if (value.isNeg()) { + throwFault("cannot modulo negative values", "mod"); + } + + return toBigNumber(toBN(this).umod(value)); + } + }, { + key: "pow", + value: function pow(other) { + var value = toBN(other); + + if (value.isNeg()) { + throwFault("cannot raise to negative values", "pow"); + } + + return toBigNumber(toBN(this).pow(value)); + } + }, { + key: "and", + value: function and(other) { + var value = toBN(other); + + if (this.isNegative() || value.isNeg()) { + throwFault("cannot 'and' negative values", "and"); + } + + return toBigNumber(toBN(this).and(value)); + } + }, { + key: "or", + value: function or(other) { + var value = toBN(other); + + if (this.isNegative() || value.isNeg()) { + throwFault("cannot 'or' negative values", "or"); + } + + return toBigNumber(toBN(this).or(value)); + } + }, { + key: "xor", + value: function xor(other) { + var value = toBN(other); + + if (this.isNegative() || value.isNeg()) { + throwFault("cannot 'xor' negative values", "xor"); + } + + return toBigNumber(toBN(this).xor(value)); + } + }, { + key: "mask", + value: function mask(value) { + if (this.isNegative() || value < 0) { + throwFault("cannot mask negative values", "mask"); + } + + return toBigNumber(toBN(this).maskn(value)); + } + }, { + key: "shl", + value: function shl(value) { + if (this.isNegative() || value < 0) { + throwFault("cannot shift negative values", "shl"); + } + + return toBigNumber(toBN(this).shln(value)); + } + }, { + key: "shr", + value: function shr(value) { + if (this.isNegative() || value < 0) { + throwFault("cannot shift negative values", "shr"); + } + + return toBigNumber(toBN(this).shrn(value)); + } + }, { + key: "eq", + value: function eq(other) { + return toBN(this).eq(toBN(other)); + } + }, { + key: "lt", + value: function lt(other) { + return toBN(this).lt(toBN(other)); + } + }, { + key: "lte", + value: function lte(other) { + return toBN(this).lte(toBN(other)); + } + }, { + key: "gt", + value: function gt(other) { + return toBN(this).gt(toBN(other)); + } + }, { + key: "gte", + value: function gte(other) { + return toBN(this).gte(toBN(other)); + } + }, { + key: "isNegative", + value: function isNegative() { + return this._hex[0] === "-"; + } + }, { + key: "isZero", + value: function isZero() { + return toBN(this).isZero(); + } + }, { + key: "toNumber", + value: function toNumber() { + try { + return toBN(this).toNumber(); + } catch (error) { + throwFault("overflow", "toNumber", this.toString()); + } + + return null; + } + }, { + key: "toBigInt", + value: function toBigInt() { + try { + return BigInt(this.toString()); + } catch (e) {} + + return logger.throwError("this platform does not support BigInt", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_2__["Logger"].errors.UNSUPPORTED_OPERATION, { + value: this.toString() + }); + } + }, { + key: "toString", + value: function toString() { + // Lots of people expect this, which we do not support, so check (See: #889) + if (arguments.length > 0) { + if (arguments[0] === 10) { + if (!_warnedToStringRadix) { + _warnedToStringRadix = true; + logger.warn("BigNumber.toString does not accept any parameters; base-10 is assumed"); + } + } else if (arguments[0] === 16) { + logger.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_2__["Logger"].errors.UNEXPECTED_ARGUMENT, {}); + } else { + logger.throwError("BigNumber.toString does not accept parameters", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_2__["Logger"].errors.UNEXPECTED_ARGUMENT, {}); + } + } + + return toBN(this).toString(10); + } + }, { + key: "toHexString", + value: function toHexString() { + return this._hex; + } + }, { + key: "toJSON", + value: function toJSON(key) { + return { + type: "BigNumber", + hex: this.toHexString() + }; + } + }], [{ + key: "from", + value: function from(value) { + if (value instanceof BigNumber) { + return value; + } + + if (typeof value === "string") { + if (value.match(/^-?0x[0-9a-f]+$/i)) { + return new BigNumber(_constructorGuard, toHex(value)); + } + + if (value.match(/^-?[0-9]+$/)) { + return new BigNumber(_constructorGuard, toHex(new BN(value))); + } + + return logger.throwArgumentError("invalid BigNumber string", "value", value); + } + + if (typeof value === "number") { + if (value % 1) { + throwFault("underflow", "BigNumber.from", value); + } + + if (value >= MAX_SAFE || value <= -MAX_SAFE) { + throwFault("overflow", "BigNumber.from", value); + } + + return BigNumber.from(String(value)); + } + + var anyValue = value; + + if (typeof anyValue === "bigint") { + return BigNumber.from(anyValue.toString()); + } + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isBytes"])(anyValue)) { + return BigNumber.from(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["hexlify"])(anyValue)); + } + + if (anyValue) { + // Hexable interface (takes priority) + if (anyValue.toHexString) { + var hex = anyValue.toHexString(); + + if (typeof hex === "string") { + return BigNumber.from(hex); + } + } else { + // For now, handle legacy JSON-ified values (goes away in v6) + var _hex = anyValue._hex; // New-form JSON + + if (_hex == null && anyValue.type === "BigNumber") { + _hex = anyValue.hex; + } + + if (typeof _hex === "string") { + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isHexString"])(_hex) || _hex[0] === "-" && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isHexString"])(_hex.substring(1))) { + return BigNumber.from(_hex); + } + } + } + } + + return logger.throwArgumentError("invalid BigNumber value", "value", value); + } + }, { + key: "isBigNumber", + value: function isBigNumber(value) { + return !!(value && value._isBigNumber); + } + }]); + + return BigNumber; +}(); // Normalize the hex string + +function toHex(value) { + // For BN, call on the hex string + if (typeof value !== "string") { + return toHex(value.toString(16)); + } // If negative, prepend the negative sign to the normalized positive value + + + if (value[0] === "-") { + // Strip off the negative sign + value = value.substring(1); // Cannot have multiple negative signs (e.g. "--0x04") + + if (value[0] === "-") { + logger.throwArgumentError("invalid hex", "value", value); + } // Call toHex on the positive component + + + value = toHex(value); // Do not allow "-0x00" + + if (value === "0x00") { + return value; + } // Negate the value + + + return "-" + value; + } // Add a "0x" prefix if missing + + + if (value.substring(0, 2) !== "0x") { + value = "0x" + value; + } // Normalize zero + + + if (value === "0x") { + return "0x00"; + } // Make the string even length + + + if (value.length % 2) { + value = "0x0" + value.substring(2); + } // Trim to smallest even-length string + + + while (value.length > 4 && value.substring(0, 4) === "0x00") { + value = "0x" + value.substring(4); + } + + return value; +} + +function toBigNumber(value) { + return BigNumber.from(toHex(value)); +} + +function toBN(value) { + var hex = BigNumber.from(value).toHexString(); + + if (hex[0] === "-") { + return new BN("-" + hex.substring(3), 16); + } + + return new BN(hex.substring(2), 16); +} + +function throwFault(fault, operation, value) { + var params = { + fault: fault, + operation: operation + }; + + if (value != null) { + params.value = value; + } + + return logger.throwError(fault, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_2__["Logger"].errors.NUMERIC_FAULT, params); +} // value should have no prefix + + +function _base36To16(value) { + return new BN(value, 36).toString(16); +} // value should have no prefix + +function _base16To36(value) { + return new BN(value, 16).toString(36); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/fixednumber.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/fixednumber.js ***! + \************************************************************************************************************/ +/*! exports provided: formatFixed, parseFixed, FixedFormat, FixedNumber */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatFixed", function() { return formatFixed; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseFixed", function() { return parseFixed; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FixedFormat", function() { return FixedFormat; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FixedNumber", function() { return FixedNumber; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/_version.js"); +/* harmony import */ var _bignumber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); + +var _constructorGuard = {}; +var Zero = _bignumber__WEBPACK_IMPORTED_MODULE_3__["BigNumber"].from(0); +var NegativeOne = _bignumber__WEBPACK_IMPORTED_MODULE_3__["BigNumber"].from(-1); + +function throwFault(message, fault, operation, value) { + var params = { + fault: fault, + operation: operation + }; + + if (value !== undefined) { + params.value = value; + } + + return logger.throwError(message, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.NUMERIC_FAULT, params); +} // Constant to pull zeros from for multipliers + + +var zeros = "0"; + +while (zeros.length < 256) { + zeros += zeros; +} // Returns a string "1" followed by decimal "0"s + + +function getMultiplier(decimals) { + if (typeof decimals !== "number") { + try { + decimals = _bignumber__WEBPACK_IMPORTED_MODULE_3__["BigNumber"].from(decimals).toNumber(); + } catch (e) {} + } + + if (typeof decimals === "number" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) { + return "1" + zeros.substring(0, decimals); + } + + return logger.throwArgumentError("invalid decimal size", "decimals", decimals); +} + +function formatFixed(value, decimals) { + if (decimals == null) { + decimals = 0; + } + + var multiplier = getMultiplier(decimals); // Make sure wei is a big number (convert as necessary) + + value = _bignumber__WEBPACK_IMPORTED_MODULE_3__["BigNumber"].from(value); + var negative = value.lt(Zero); + + if (negative) { + value = value.mul(NegativeOne); + } + + var fraction = value.mod(multiplier).toString(); + + while (fraction.length < multiplier.length - 1) { + fraction = "0" + fraction; + } // Strip training 0 + + + fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1]; + var whole = value.div(multiplier).toString(); + + if (multiplier.length === 1) { + value = whole; + } else { + value = whole + "." + fraction; + } + + if (negative) { + value = "-" + value; + } + + return value; +} +function parseFixed(value, decimals) { + if (decimals == null) { + decimals = 0; + } + + var multiplier = getMultiplier(decimals); + + if (typeof value !== "string" || !value.match(/^-?[0-9.]+$/)) { + logger.throwArgumentError("invalid decimal value", "value", value); + } // Is it negative? + + + var negative = value.substring(0, 1) === "-"; + + if (negative) { + value = value.substring(1); + } + + if (value === ".") { + logger.throwArgumentError("missing value", "value", value); + } // Split it into a whole and fractional part + + + var comps = value.split("."); + + if (comps.length > 2) { + logger.throwArgumentError("too many decimal points", "value", value); + } + + var whole = comps[0], + fraction = comps[1]; + + if (!whole) { + whole = "0"; + } + + if (!fraction) { + fraction = "0"; + } // Trim trailing zeros + + + while (fraction[fraction.length - 1] === "0") { + fraction = fraction.substring(0, fraction.length - 1); + } // Check the fraction doesn't exceed our decimals size + + + if (fraction.length > multiplier.length - 1) { + throwFault("fractional component exceeds decimals", "underflow", "parseFixed"); + } // If decimals is 0, we have an empty string for fraction + + + if (fraction === "") { + fraction = "0"; + } // Fully pad the string with zeros to get to wei + + + while (fraction.length < multiplier.length - 1) { + fraction += "0"; + } + + var wholeValue = _bignumber__WEBPACK_IMPORTED_MODULE_3__["BigNumber"].from(whole); + var fractionValue = _bignumber__WEBPACK_IMPORTED_MODULE_3__["BigNumber"].from(fraction); + var wei = wholeValue.mul(multiplier).add(fractionValue); + + if (negative) { + wei = wei.mul(NegativeOne); + } + + return wei; +} +var FixedFormat = /*#__PURE__*/function () { + function FixedFormat(constructorGuard, signed, width, decimals) { + _classCallCheck(this, FixedFormat); + + if (constructorGuard !== _constructorGuard) { + logger.throwError("cannot use FixedFormat constructor; use FixedFormat.from", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "new FixedFormat" + }); + } + + this.signed = signed; + this.width = width; + this.decimals = decimals; + this.name = (signed ? "" : "u") + "fixed" + String(width) + "x" + String(decimals); + this._multiplier = getMultiplier(decimals); + Object.freeze(this); + } + + _createClass(FixedFormat, null, [{ + key: "from", + value: function from(value) { + if (value instanceof FixedFormat) { + return value; + } + + if (typeof value === "number") { + value = "fixed128x".concat(value); + } + + var signed = true; + var width = 128; + var decimals = 18; + + if (typeof value === "string") { + if (value === "fixed") {// defaults... + } else if (value === "ufixed") { + signed = false; + } else { + var match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/); + + if (!match) { + logger.throwArgumentError("invalid fixed format", "format", value); + } + + signed = match[1] !== "u"; + width = parseInt(match[2]); + decimals = parseInt(match[3]); + } + } else if (value) { + var check = function check(key, type, defaultValue) { + if (value[key] == null) { + return defaultValue; + } + + if (_typeof(value[key]) !== type) { + logger.throwArgumentError("invalid fixed format (" + key + " not " + type + ")", "format." + key, value[key]); + } + + return value[key]; + }; + + signed = check("signed", "boolean", signed); + width = check("width", "number", width); + decimals = check("decimals", "number", decimals); + } + + if (width % 8) { + logger.throwArgumentError("invalid fixed format width (not byte aligned)", "format.width", width); + } + + if (decimals > 80) { + logger.throwArgumentError("invalid fixed format (decimals too large)", "format.decimals", decimals); + } + + return new FixedFormat(_constructorGuard, signed, width, decimals); + } + }]); + + return FixedFormat; +}(); +var FixedNumber = /*#__PURE__*/function () { + function FixedNumber(constructorGuard, hex, value, format) { + _classCallCheck(this, FixedNumber); + + logger.checkNew(this instanceof FixedNumber ? this.constructor : void 0, FixedNumber); + + if (constructorGuard !== _constructorGuard) { + logger.throwError("cannot use FixedNumber constructor; use FixedNumber.from", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "new FixedFormat" + }); + } + + this.format = format; + this._hex = hex; + this._value = value; + this._isFixedNumber = true; + Object.freeze(this); + } + + _createClass(FixedNumber, [{ + key: "_checkFormat", + value: function _checkFormat(other) { + if (this.format.name !== other.format.name) { + logger.throwArgumentError("incompatible format; use fixedNumber.toFormat", "other", other); + } + } + }, { + key: "addUnsafe", + value: function addUnsafe(other) { + this._checkFormat(other); + + var a = parseFixed(this._value, this.format.decimals); + var b = parseFixed(other._value, other.format.decimals); + return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format); + } + }, { + key: "subUnsafe", + value: function subUnsafe(other) { + this._checkFormat(other); + + var a = parseFixed(this._value, this.format.decimals); + var b = parseFixed(other._value, other.format.decimals); + return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format); + } + }, { + key: "mulUnsafe", + value: function mulUnsafe(other) { + this._checkFormat(other); + + var a = parseFixed(this._value, this.format.decimals); + var b = parseFixed(other._value, other.format.decimals); + return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format); + } + }, { + key: "divUnsafe", + value: function divUnsafe(other) { + this._checkFormat(other); + + var a = parseFixed(this._value, this.format.decimals); + var b = parseFixed(other._value, other.format.decimals); + return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format); + } + }, { + key: "floor", + value: function floor() { + var comps = this.toString().split("."); + + if (comps.length === 1) { + comps.push("0"); + } + + var result = FixedNumber.from(comps[0], this.format); + var hasFraction = !comps[1].match(/^(0*)$/); + + if (this.isNegative() && hasFraction) { + result = result.subUnsafe(ONE.toFormat(result.format)); + } + + return result; + } + }, { + key: "ceiling", + value: function ceiling() { + var comps = this.toString().split("."); + + if (comps.length === 1) { + comps.push("0"); + } + + var result = FixedNumber.from(comps[0], this.format); + var hasFraction = !comps[1].match(/^(0*)$/); + + if (!this.isNegative() && hasFraction) { + result = result.addUnsafe(ONE.toFormat(result.format)); + } + + return result; + } // @TODO: Support other rounding algorithms + + }, { + key: "round", + value: function round(decimals) { + if (decimals == null) { + decimals = 0; + } // If we are already in range, we're done + + + var comps = this.toString().split("."); + + if (comps.length === 1) { + comps.push("0"); + } + + if (decimals < 0 || decimals > 80 || decimals % 1) { + logger.throwArgumentError("invalid decimal count", "decimals", decimals); + } + + if (comps[1].length <= decimals) { + return this; + } + + var factor = FixedNumber.from("1" + zeros.substring(0, decimals), this.format); + var bump = BUMP.toFormat(this.format); + return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor); + } + }, { + key: "isZero", + value: function isZero() { + return this._value === "0.0" || this._value === "0"; + } + }, { + key: "isNegative", + value: function isNegative() { + return this._value[0] === "-"; + } + }, { + key: "toString", + value: function toString() { + return this._value; + } + }, { + key: "toHexString", + value: function toHexString(width) { + if (width == null) { + return this._hex; + } + + if (width % 8) { + logger.throwArgumentError("invalid byte width", "width", width); + } + + var hex = _bignumber__WEBPACK_IMPORTED_MODULE_3__["BigNumber"].from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString(); + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexZeroPad"])(hex, width / 8); + } + }, { + key: "toUnsafeFloat", + value: function toUnsafeFloat() { + return parseFloat(this.toString()); + } + }, { + key: "toFormat", + value: function toFormat(format) { + return FixedNumber.fromString(this._value, format); + } + }], [{ + key: "fromValue", + value: function fromValue(value, decimals, format) { + // If decimals looks more like a format, and there is no format, shift the parameters + if (format == null && decimals != null && !Object(_bignumber__WEBPACK_IMPORTED_MODULE_3__["isBigNumberish"])(decimals)) { + format = decimals; + decimals = null; + } + + if (decimals == null) { + decimals = 0; + } + + if (format == null) { + format = "fixed"; + } + + return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format)); + } + }, { + key: "fromString", + value: function fromString(value, format) { + if (format == null) { + format = "fixed"; + } + + var fixedFormat = FixedFormat.from(format); + var numeric = parseFixed(value, fixedFormat.decimals); + + if (!fixedFormat.signed && numeric.lt(Zero)) { + throwFault("unsigned value cannot be negative", "overflow", "value", value); + } + + var hex = null; + + if (fixedFormat.signed) { + hex = numeric.toTwos(fixedFormat.width).toHexString(); + } else { + hex = numeric.toHexString(); + hex = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexZeroPad"])(hex, fixedFormat.width / 8); + } + + var decimal = formatFixed(numeric, fixedFormat.decimals); + return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat); + } + }, { + key: "fromBytes", + value: function fromBytes(value, format) { + if (format == null) { + format = "fixed"; + } + + var fixedFormat = FixedFormat.from(format); + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(value).length > fixedFormat.width / 8) { + throw new Error("overflow"); + } + + var numeric = _bignumber__WEBPACK_IMPORTED_MODULE_3__["BigNumber"].from(value); + + if (fixedFormat.signed) { + numeric = numeric.fromTwos(fixedFormat.width); + } + + var hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString(); + var decimal = formatFixed(numeric, fixedFormat.decimals); + return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat); + } + }, { + key: "from", + value: function from(value, format) { + if (typeof value === "string") { + return FixedNumber.fromString(value, format); + } + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["isBytes"])(value)) { + return FixedNumber.fromBytes(value, format); + } + + try { + return FixedNumber.fromValue(value, 0, format); + } catch (error) { + // Allow NUMERIC_FAULT to bubble up + if (error.code !== _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.INVALID_ARGUMENT) { + throw error; + } + } + + return logger.throwArgumentError("invalid FixedNumber value", "value", value); + } + }, { + key: "isFixedNumber", + value: function isFixedNumber(value) { + return !!(value && value._isFixedNumber); + } + }]); + + return FixedNumber; +}(); +var ONE = FixedNumber.from(1); +var BUMP = FixedNumber.from("0.5"); + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js ***! + \******************************************************************************************************/ +/*! exports provided: BigNumber, formatFixed, FixedFormat, FixedNumber, parseFixed, _base16To36, _base36To16 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _bignumber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BigNumber", function() { return _bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"]; }); + +/* harmony import */ var _fixednumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./fixednumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/fixednumber.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatFixed", function() { return _fixednumber__WEBPACK_IMPORTED_MODULE_1__["formatFixed"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FixedFormat", function() { return _fixednumber__WEBPACK_IMPORTED_MODULE_1__["FixedFormat"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FixedNumber", function() { return _fixednumber__WEBPACK_IMPORTED_MODULE_1__["FixedNumber"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parseFixed", function() { return _fixednumber__WEBPACK_IMPORTED_MODULE_1__["parseFixed"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_base16To36", function() { return _bignumber__WEBPACK_IMPORTED_MODULE_0__["_base16To36"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_base36To16", function() { return _bignumber__WEBPACK_IMPORTED_MODULE_0__["_base36To16"]; }); + + + // Internal methods used by address + + + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/_version.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/_version.js ***! + \*****************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "bytes/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js ***! + \**************************************************************************************************/ +/*! exports provided: isBytesLike, isBytes, arrayify, concat, stripZeros, zeroPad, isHexString, hexlify, hexDataLength, hexDataSlice, hexConcat, hexValue, hexStripZeros, hexZeroPad, splitSignature, joinSignature */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBytesLike", function() { return isBytesLike; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBytes", function() { return isBytes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayify", function() { return arrayify; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stripZeros", function() { return stripZeros; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zeroPad", function() { return zeroPad; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHexString", function() { return isHexString; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexlify", function() { return hexlify; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexDataLength", function() { return hexDataLength; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexDataSlice", function() { return hexDataSlice; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexConcat", function() { return hexConcat; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexValue", function() { return hexValue; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexStripZeros", function() { return hexStripZeros; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexZeroPad", function() { return hexZeroPad; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "splitSignature", function() { return splitSignature; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "joinSignature", function() { return joinSignature; }); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/_version.js"); + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__["Logger"](_version__WEBPACK_IMPORTED_MODULE_1__["version"]); /////////////////////////////// + +function isHexable(value) { + return !!value.toHexString; +} + +function addSlice(array) { + if (array.slice) { + return array; + } + + array.slice = function () { + var args = Array.prototype.slice.call(arguments); + return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args))); + }; + + return array; +} + +function isBytesLike(value) { + return isHexString(value) && !(value.length % 2) || isBytes(value); +} + +function isInteger(value) { + return typeof value === "number" && value == value && value % 1 === 0; +} + +function isBytes(value) { + if (value == null) { + return false; + } + + if (value.constructor === Uint8Array) { + return true; + } + + if (typeof value === "string") { + return false; + } + + if (!isInteger(value.length) || value.length < 0) { + return false; + } + + for (var i = 0; i < value.length; i++) { + var v = value[i]; + + if (!isInteger(v) || v < 0 || v >= 256) { + return false; + } + } + + return true; +} +function arrayify(value, options) { + if (!options) { + options = {}; + } + + if (typeof value === "number") { + logger.checkSafeUint53(value, "invalid arrayify value"); + var result = []; + + while (value) { + result.unshift(value & 0xff); + value = parseInt(String(value / 256)); + } + + if (result.length === 0) { + result.push(0); + } + + return addSlice(new Uint8Array(result)); + } + + if (options.allowMissingPrefix && typeof value === "string" && value.substring(0, 2) !== "0x") { + value = "0x" + value; + } + + if (isHexable(value)) { + value = value.toHexString(); + } + + if (isHexString(value)) { + var hex = value.substring(2); + + if (hex.length % 2) { + if (options.hexPad === "left") { + hex = "0x0" + hex.substring(2); + } else if (options.hexPad === "right") { + hex += "0"; + } else { + logger.throwArgumentError("hex data is odd-length", "value", value); + } + } + + var _result = []; + + for (var i = 0; i < hex.length; i += 2) { + _result.push(parseInt(hex.substring(i, i + 2), 16)); + } + + return addSlice(new Uint8Array(_result)); + } + + if (isBytes(value)) { + return addSlice(new Uint8Array(value)); + } + + return logger.throwArgumentError("invalid arrayify value", "value", value); +} +function concat(items) { + var objects = items.map(function (item) { + return arrayify(item); + }); + var length = objects.reduce(function (accum, item) { + return accum + item.length; + }, 0); + var result = new Uint8Array(length); + objects.reduce(function (offset, object) { + result.set(object, offset); + return offset + object.length; + }, 0); + return addSlice(result); +} +function stripZeros(value) { + var result = arrayify(value); + + if (result.length === 0) { + return result; + } // Find the first non-zero entry + + + var start = 0; + + while (start < result.length && result[start] === 0) { + start++; + } // If we started with zeros, strip them + + + if (start) { + result = result.slice(start); + } + + return result; +} +function zeroPad(value, length) { + value = arrayify(value); + + if (value.length > length) { + logger.throwArgumentError("value out of range", "value", arguments[0]); + } + + var result = new Uint8Array(length); + result.set(value, length - value.length); + return addSlice(result); +} +function isHexString(value, length) { + if (typeof value !== "string" || !value.match(/^0x[0-9A-Fa-f]*$/)) { + return false; + } + + if (length && value.length !== 2 + 2 * length) { + return false; + } + + return true; +} +var HexCharacters = "0123456789abcdef"; +function hexlify(value, options) { + if (!options) { + options = {}; + } + + if (typeof value === "number") { + logger.checkSafeUint53(value, "invalid hexlify value"); + var hex = ""; + + while (value) { + hex = HexCharacters[value & 0xf] + hex; + value = Math.floor(value / 16); + } + + if (hex.length) { + if (hex.length % 2) { + hex = "0" + hex; + } + + return "0x" + hex; + } + + return "0x00"; + } + + if (typeof value === "bigint") { + value = value.toString(16); + + if (value.length % 2) { + return "0x0" + value; + } + + return "0x" + value; + } + + if (options.allowMissingPrefix && typeof value === "string" && value.substring(0, 2) !== "0x") { + value = "0x" + value; + } + + if (isHexable(value)) { + return value.toHexString(); + } + + if (isHexString(value)) { + if (value.length % 2) { + if (options.hexPad === "left") { + value = "0x0" + value.substring(2); + } else if (options.hexPad === "right") { + value += "0"; + } else { + logger.throwArgumentError("hex data is odd-length", "value", value); + } + } + + return value.toLowerCase(); + } + + if (isBytes(value)) { + var result = "0x"; + + for (var i = 0; i < value.length; i++) { + var v = value[i]; + result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f]; + } + + return result; + } + + return logger.throwArgumentError("invalid hexlify value", "value", value); +} +/* +function unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number { + if (typeof(value) === "string" && value.length % 2 && value.substring(0, 2) === "0x") { + return "0x0" + value.substring(2); + } + return value; +} +*/ + +function hexDataLength(data) { + if (typeof data !== "string") { + data = hexlify(data); + } else if (!isHexString(data) || data.length % 2) { + return null; + } + + return (data.length - 2) / 2; +} +function hexDataSlice(data, offset, endOffset) { + if (typeof data !== "string") { + data = hexlify(data); + } else if (!isHexString(data) || data.length % 2) { + logger.throwArgumentError("invalid hexData", "value", data); + } + + offset = 2 + 2 * offset; + + if (endOffset != null) { + return "0x" + data.substring(offset, 2 + 2 * endOffset); + } + + return "0x" + data.substring(offset); +} +function hexConcat(items) { + var result = "0x"; + items.forEach(function (item) { + result += hexlify(item).substring(2); + }); + return result; +} +function hexValue(value) { + var trimmed = hexStripZeros(hexlify(value, { + hexPad: "left" + })); + + if (trimmed === "0x") { + return "0x0"; + } + + return trimmed; +} +function hexStripZeros(value) { + if (typeof value !== "string") { + value = hexlify(value); + } + + if (!isHexString(value)) { + logger.throwArgumentError("invalid hex string", "value", value); + } + + value = value.substring(2); + var offset = 0; + + while (offset < value.length && value[offset] === "0") { + offset++; + } + + return "0x" + value.substring(offset); +} +function hexZeroPad(value, length) { + if (typeof value !== "string") { + value = hexlify(value); + } else if (!isHexString(value)) { + logger.throwArgumentError("invalid hex string", "value", value); + } + + if (value.length > 2 * length + 2) { + logger.throwArgumentError("value out of range", "value", arguments[1]); + } + + while (value.length < 2 * length + 2) { + value = "0x0" + value.substring(2); + } + + return value; +} +function splitSignature(signature) { + var result = { + r: "0x", + s: "0x", + _vs: "0x", + recoveryParam: 0, + v: 0 + }; + + if (isBytesLike(signature)) { + var bytes = arrayify(signature); + + if (bytes.length !== 65) { + logger.throwArgumentError("invalid signature string; must be 65 bytes", "signature", signature); + } // Get the r, s and v + + + result.r = hexlify(bytes.slice(0, 32)); + result.s = hexlify(bytes.slice(32, 64)); + result.v = bytes[64]; // Allow a recid to be used as the v + + if (result.v < 27) { + if (result.v === 0 || result.v === 1) { + result.v += 27; + } else { + logger.throwArgumentError("signature invalid v byte", "signature", signature); + } + } // Compute recoveryParam from v + + + result.recoveryParam = 1 - result.v % 2; // Compute _vs from recoveryParam and s + + if (result.recoveryParam) { + bytes[32] |= 0x80; + } + + result._vs = hexlify(bytes.slice(32, 64)); + } else { + result.r = signature.r; + result.s = signature.s; + result.v = signature.v; + result.recoveryParam = signature.recoveryParam; + result._vs = signature._vs; // If the _vs is available, use it to populate missing s, v and recoveryParam + // and verify non-missing s, v and recoveryParam + + if (result._vs != null) { + var _vs2 = zeroPad(arrayify(result._vs), 32); + + result._vs = hexlify(_vs2); // Set or check the recid + + var recoveryParam = _vs2[0] >= 128 ? 1 : 0; + + if (result.recoveryParam == null) { + result.recoveryParam = recoveryParam; + } else if (result.recoveryParam !== recoveryParam) { + logger.throwArgumentError("signature recoveryParam mismatch _vs", "signature", signature); + } // Set or check the s + + + _vs2[0] &= 0x7f; + var s = hexlify(_vs2); + + if (result.s == null) { + result.s = s; + } else if (result.s !== s) { + logger.throwArgumentError("signature v mismatch _vs", "signature", signature); + } + } // Use recid and v to populate each other + + + if (result.recoveryParam == null) { + if (result.v == null) { + logger.throwArgumentError("signature missing v and recoveryParam", "signature", signature); + } else if (result.v === 0 || result.v === 1) { + result.recoveryParam = result.v; + } else { + result.recoveryParam = 1 - result.v % 2; + } + } else { + if (result.v == null) { + result.v = 27 + result.recoveryParam; + } else { + var recId = result.v === 0 || result.v === 1 ? result.v : 1 - result.v % 2; + + if (result.recoveryParam !== recId) { + logger.throwArgumentError("signature recoveryParam mismatch v", "signature", signature); + } + } + } + + if (result.r == null || !isHexString(result.r)) { + logger.throwArgumentError("signature missing or invalid r", "signature", signature); + } else { + result.r = hexZeroPad(result.r, 32); + } + + if (result.s == null || !isHexString(result.s)) { + logger.throwArgumentError("signature missing or invalid s", "signature", signature); + } else { + result.s = hexZeroPad(result.s, 32); + } + + var vs = arrayify(result.s); + + if (vs[0] >= 128) { + logger.throwArgumentError("signature s out of range", "signature", signature); + } + + if (result.recoveryParam) { + vs[0] |= 0x80; + } + + var _vs = hexlify(vs); + + if (result._vs) { + if (!isHexString(result._vs)) { + logger.throwArgumentError("signature invalid _vs", "signature", signature); + } + + result._vs = hexZeroPad(result._vs, 32); + } // Set or check the _vs + + + if (result._vs == null) { + result._vs = _vs; + } else if (result._vs !== _vs) { + logger.throwArgumentError("signature _vs mismatch v and s", "signature", signature); + } + } + + return result; +} +function joinSignature(signature) { + signature = splitSignature(signature); + return hexlify(concat([signature.r, signature.s, signature.recoveryParam ? "0x1c" : "0x1b"])); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/addresses.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/addresses.js ***! + \**********************************************************************************************************/ +/*! exports provided: AddressZero */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AddressZero", function() { return AddressZero; }); +var AddressZero = "0x0000000000000000000000000000000000000000"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/bignumbers.js": +/*!***********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/bignumbers.js ***! + \***********************************************************************************************************/ +/*! exports provided: NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NegativeOne", function() { return NegativeOne; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Zero", function() { return Zero; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "One", function() { return One; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Two", function() { return Two; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WeiPerEther", function() { return WeiPerEther; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MaxUint256", function() { return MaxUint256; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MinInt256", function() { return MinInt256; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MaxInt256", function() { return MaxInt256; }); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); + +var NegativeOne = /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from(-1); +var Zero = /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from(0); +var One = /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from(1); +var Two = /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from(2); +var WeiPerEther = /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from("1000000000000000000"); +var MaxUint256 = /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); +var MinInt256 = /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from("-0x8000000000000000000000000000000000000000000000000000000000000000"); +var MaxInt256 = /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); + + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/hashes.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/hashes.js ***! + \*******************************************************************************************************/ +/*! exports provided: HashZero */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "HashZero", function() { return HashZero; }); +var HashZero = "0x0000000000000000000000000000000000000000000000000000000000000000"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/index.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/index.js ***! + \******************************************************************************************************/ +/*! exports provided: AddressZero, NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256, HashZero, EtherSymbol */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _addresses__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./addresses */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/addresses.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AddressZero", function() { return _addresses__WEBPACK_IMPORTED_MODULE_0__["AddressZero"]; }); + +/* harmony import */ var _bignumbers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./bignumbers */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/bignumbers.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NegativeOne", function() { return _bignumbers__WEBPACK_IMPORTED_MODULE_1__["NegativeOne"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Zero", function() { return _bignumbers__WEBPACK_IMPORTED_MODULE_1__["Zero"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "One", function() { return _bignumbers__WEBPACK_IMPORTED_MODULE_1__["One"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Two", function() { return _bignumbers__WEBPACK_IMPORTED_MODULE_1__["Two"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WeiPerEther", function() { return _bignumbers__WEBPACK_IMPORTED_MODULE_1__["WeiPerEther"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaxUint256", function() { return _bignumbers__WEBPACK_IMPORTED_MODULE_1__["MaxUint256"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MinInt256", function() { return _bignumbers__WEBPACK_IMPORTED_MODULE_1__["MinInt256"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "MaxInt256", function() { return _bignumbers__WEBPACK_IMPORTED_MODULE_1__["MaxInt256"]; }); + +/* harmony import */ var _hashes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./hashes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/hashes.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "HashZero", function() { return _hashes__WEBPACK_IMPORTED_MODULE_2__["HashZero"]; }); + +/* harmony import */ var _strings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./strings */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/strings.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EtherSymbol", function() { return _strings__WEBPACK_IMPORTED_MODULE_3__["EtherSymbol"]; }); + + + + + + + + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/strings.js": +/*!********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/strings.js ***! + \********************************************************************************************************/ +/*! exports provided: EtherSymbol */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EtherSymbol", function() { return EtherSymbol; }); +// NFKC (composed) // (decomposed) +var EtherSymbol = "\u039E"; // "\uD835\uDF63"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/_version.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/_version.js ***! + \****************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "hash/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/id.js": +/*!**********************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/id.js ***! + \**********************************************************************************************/ +/*! exports provided: id */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "id", function() { return id; }); +/* harmony import */ var _ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/keccak256 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/keccak256/lib.esm/index.js"); +/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/index.js"); + + +function id(text) { + return Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_0__["keccak256"])(Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_1__["toUtf8Bytes"])(text)); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/index.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/index.js ***! + \*************************************************************************************************/ +/*! exports provided: id, namehash, isValidName, messagePrefix, hashMessage, _TypedDataEncoder */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _id__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./id */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/id.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "id", function() { return _id__WEBPACK_IMPORTED_MODULE_0__["id"]; }); + +/* harmony import */ var _namehash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./namehash */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/namehash.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namehash", function() { return _namehash__WEBPACK_IMPORTED_MODULE_1__["namehash"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isValidName", function() { return _namehash__WEBPACK_IMPORTED_MODULE_1__["isValidName"]; }); + +/* harmony import */ var _message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./message */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/message.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "messagePrefix", function() { return _message__WEBPACK_IMPORTED_MODULE_2__["messagePrefix"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hashMessage", function() { return _message__WEBPACK_IMPORTED_MODULE_2__["hashMessage"]; }); + +/* harmony import */ var _typed_data__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./typed-data */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/typed-data.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_TypedDataEncoder", function() { return _typed_data__WEBPACK_IMPORTED_MODULE_3__["TypedDataEncoder"]; }); + + + + + + + + + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/message.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/message.js ***! + \***************************************************************************************************/ +/*! exports provided: messagePrefix, hashMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "messagePrefix", function() { return messagePrefix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hashMessage", function() { return hashMessage; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/keccak256 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/keccak256/lib.esm/index.js"); +/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/index.js"); + + + +var messagePrefix = "\x19Ethereum Signed Message:\n"; +function hashMessage(message) { + if (typeof message === "string") { + message = Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_2__["toUtf8Bytes"])(message); + } + + return Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_1__["keccak256"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["concat"])([Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_2__["toUtf8Bytes"])(messagePrefix), Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_2__["toUtf8Bytes"])(String(message.length)), message])); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/namehash.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/namehash.js ***! + \****************************************************************************************************/ +/*! exports provided: isValidName, namehash */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isValidName", function() { return isValidName; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "namehash", function() { return namehash; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/index.js"); +/* harmony import */ var _ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/keccak256 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/keccak256/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/_version.js"); + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__["Logger"](_version__WEBPACK_IMPORTED_MODULE_4__["version"]); +var Zeros = new Uint8Array(32); +Zeros.fill(0); +var Partition = new RegExp("^((.*)\\.)?([^.]+)$"); +function isValidName(name) { + try { + var comps = name.split("."); + + for (var i = 0; i < comps.length; i++) { + if (Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_1__["nameprep"])(comps[i]).length === 0) { + throw new Error("empty"); + } + } + + return true; + } catch (error) {} + + return false; +} +function namehash(name) { + /* istanbul ignore if */ + if (typeof name !== "string") { + logger.throwArgumentError("invalid ENS name; not a string", "name", name); + } + + var current = name; + var result = Zeros; + + while (current.length) { + var partition = current.match(Partition); + + if (partition == null || partition[2] === "") { + logger.throwArgumentError("invalid ENS address; missing component", "name", name); + } + + var label = Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_1__["toUtf8Bytes"])(Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_1__["nameprep"])(partition[3])); + result = Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_2__["keccak256"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["concat"])([result, Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_2__["keccak256"])(label)])); + current = partition[2] || ""; + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexlify"])(result); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/typed-data.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/typed-data.js ***! + \******************************************************************************************************/ +/*! exports provided: TypedDataEncoder */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TypedDataEncoder", function() { return TypedDataEncoder; }); +/* harmony import */ var _ethersproject_address__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/address */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/address/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/keccak256 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/keccak256/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/_version.js"); +/* harmony import */ var _id__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./id */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/hash/lib.esm/id.js"); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"](_version__WEBPACK_IMPORTED_MODULE_6__["version"]); + +var padding = new Uint8Array(32); +padding.fill(0); +var NegativeOne = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(-1); +var Zero = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(0); +var One = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(1); +var MaxUint256 = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); + +function hexPadRight(value) { + var bytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(value); + var padOffset = bytes.length % 32; + + if (padOffset) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexConcat"])([bytes, padding.slice(padOffset)]); + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(bytes); +} + +var hexTrue = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexZeroPad"])(One.toHexString(), 32); +var hexFalse = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexZeroPad"])(Zero.toHexString(), 32); +var domainFieldTypes = { + name: "string", + version: "string", + chainId: "uint256", + verifyingContract: "address", + salt: "bytes32" +}; +var domainFieldNames = ["name", "version", "chainId", "verifyingContract", "salt"]; + +function checkString(key) { + return function (value) { + if (typeof value !== "string") { + logger.throwArgumentError("invalid domain value for ".concat(JSON.stringify(key)), "domain.".concat(key), value); + } + + return value; + }; +} + +var domainChecks = { + name: checkString("name"), + version: checkString("version"), + chainId: function chainId(value) { + try { + return _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(value).toString(); + } catch (error) {} + + return logger.throwArgumentError("invalid domain value for \"chainId\"", "domain.chainId", value); + }, + verifyingContract: function verifyingContract(value) { + try { + return Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getAddress"])(value).toLowerCase(); + } catch (error) {} + + return logger.throwArgumentError("invalid domain value \"verifyingContract\"", "domain.verifyingContract", value); + }, + salt: function salt(value) { + try { + var bytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(value); + + if (bytes.length !== 32) { + throw new Error("bad length"); + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(bytes); + } catch (error) {} + + return logger.throwArgumentError("invalid domain value \"salt\"", "domain.salt", value); + } +}; + +function getBaseEncoder(type) { + // intXX and uintXX + { + var match = type.match(/^(u?)int(\d*)$/); + + if (match) { + var signed = match[1] === ""; + var width = parseInt(match[2] || "256"); + + if (width % 8 !== 0 || width > 256 || match[2] && match[2] !== String(width)) { + logger.throwArgumentError("invalid numeric width", "type", type); + } + + var boundsUpper = MaxUint256.mask(signed ? width - 1 : width); + var boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne) : Zero; + return function (value) { + var v = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(value); + + if (v.lt(boundsLower) || v.gt(boundsUpper)) { + logger.throwArgumentError("value out-of-bounds for ".concat(type), "value", value); + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexZeroPad"])(v.toTwos(256).toHexString(), 32); + }; + } + } // bytesXX + + { + var _match = type.match(/^bytes(\d+)$/); + + if (_match) { + var _width = parseInt(_match[1]); + + if (_width === 0 || _width > 32 || _match[1] !== String(_width)) { + logger.throwArgumentError("invalid bytes width", "type", type); + } + + return function (value) { + var bytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(value); + + if (bytes.length !== _width) { + logger.throwArgumentError("invalid length for ".concat(type), "value", value); + } + + return hexPadRight(value); + }; + } + } + + switch (type) { + case "address": + return function (value) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexZeroPad"])(Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getAddress"])(value), 32); + }; + + case "bool": + return function (value) { + return !value ? hexFalse : hexTrue; + }; + + case "bytes": + return function (value) { + return Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_3__["keccak256"])(value); + }; + + case "string": + return function (value) { + return Object(_id__WEBPACK_IMPORTED_MODULE_7__["id"])(value); + }; + } + + return null; +} + +function encodeType(name, fields) { + return "".concat(name, "(").concat(fields.map(function (_ref) { + var name = _ref.name, + type = _ref.type; + return type + " " + name; + }).join(","), ")"); +} + +var TypedDataEncoder = /*#__PURE__*/function () { + function TypedDataEncoder(types) { + _classCallCheck(this, TypedDataEncoder); + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(this, "types", Object.freeze(Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["deepCopy"])(types))); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(this, "_encoderCache", {}); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(this, "_types", {}); // Link struct types to their direct child structs + + var links = {}; // Link structs to structs which contain them as a child + + var parents = {}; // Link all subtypes within a given struct + + var subtypes = {}; + Object.keys(types).forEach(function (type) { + links[type] = {}; + parents[type] = []; + subtypes[type] = {}; + }); + + var _loop = function _loop(name) { + var uniqueNames = {}; + types[name].forEach(function (field) { + // Check each field has a unique name + if (uniqueNames[field.name]) { + logger.throwArgumentError("duplicate variable name ".concat(JSON.stringify(field.name), " in ").concat(JSON.stringify(name)), "types", types); + } + + uniqueNames[field.name] = true; // Get the base type (drop any array specifiers) + + var baseType = field.type.match(/^([^\x5b]*)(\x5b|$)/)[1]; + + if (baseType === name) { + logger.throwArgumentError("circular type reference to ".concat(JSON.stringify(baseType)), "types", types); + } // Is this a base encoding type? + + + var encoder = getBaseEncoder(baseType); + + if (encoder) { + return; + } + + if (!parents[baseType]) { + logger.throwArgumentError("unknown type ".concat(JSON.stringify(baseType)), "types", types); + } // Add linkage + + + parents[baseType].push(name); + links[name][baseType] = true; + }); + }; + + for (var name in types) { + _loop(name); + } // Deduce the primary type + + + var primaryTypes = Object.keys(parents).filter(function (n) { + return parents[n].length === 0; + }); + + if (primaryTypes.length === 0) { + logger.throwArgumentError("missing primary type", "types", types); + } else if (primaryTypes.length > 1) { + logger.throwArgumentError("ambiguous primary types or unused types: ".concat(primaryTypes.map(function (t) { + return JSON.stringify(t); + }).join(", ")), "types", types); + } + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(this, "primaryType", primaryTypes[0]); // Check for circular type references + + function checkCircular(type, found) { + if (found[type]) { + logger.throwArgumentError("circular type reference to ".concat(JSON.stringify(type)), "types", types); + } + + found[type] = true; + Object.keys(links[type]).forEach(function (child) { + if (!parents[child]) { + return; + } // Recursively check children + + + checkCircular(child, found); // Mark all ancestors as having this decendant + + Object.keys(found).forEach(function (subtype) { + subtypes[subtype][child] = true; + }); + }); + delete found[type]; + } + + checkCircular(this.primaryType, {}); // Compute each fully describe type + + for (var _name in subtypes) { + var st = Object.keys(subtypes[_name]); + st.sort(); + this._types[_name] = encodeType(_name, types[_name]) + st.map(function (t) { + return encodeType(t, types[t]); + }).join(""); + } + } + + _createClass(TypedDataEncoder, [{ + key: "getEncoder", + value: function getEncoder(type) { + var encoder = this._encoderCache[type]; + + if (!encoder) { + encoder = this._encoderCache[type] = this._getEncoder(type); + } + + return encoder; + } + }, { + key: "_getEncoder", + value: function _getEncoder(type) { + var _this = this; + + // Basic encoder type (address, bool, uint256, etc) + { + var encoder = getBaseEncoder(type); + + if (encoder) { + return encoder; + } + } // Array + + var match = type.match(/^(.*)(\x5b(\d*)\x5d)$/); + + if (match) { + var subtype = match[1]; + var subEncoder = this.getEncoder(subtype); + var length = parseInt(match[3]); + return function (value) { + if (length >= 0 && value.length !== length) { + logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value); + } + + var result = value.map(subEncoder); + + if (_this._types[subtype]) { + result = result.map(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_3__["keccak256"]); + } + + return Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_3__["keccak256"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexConcat"])(result)); + }; + } // Struct + + + var fields = this.types[type]; + + if (fields) { + var encodedType = Object(_id__WEBPACK_IMPORTED_MODULE_7__["id"])(this._types[type]); + return function (value) { + var values = fields.map(function (_ref2) { + var name = _ref2.name, + type = _ref2.type; + + var result = _this.getEncoder(type)(value[name]); + + if (_this._types[type]) { + return Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_3__["keccak256"])(result); + } + + return result; + }); + values.unshift(encodedType); + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexConcat"])(values); + }; + } + + return logger.throwArgumentError("unknown type: ".concat(type), "type", type); + } + }, { + key: "encodeType", + value: function encodeType(name) { + var result = this._types[name]; + + if (!result) { + logger.throwArgumentError("unknown type: ".concat(JSON.stringify(name)), "name", name); + } + + return result; + } + }, { + key: "encodeData", + value: function encodeData(type, value) { + return this.getEncoder(type)(value); + } + }, { + key: "hashStruct", + value: function hashStruct(name, value) { + return Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_3__["keccak256"])(this.encodeData(name, value)); + } + }, { + key: "encode", + value: function encode(value) { + return this.encodeData(this.primaryType, value); + } + }, { + key: "hash", + value: function hash(value) { + return this.hashStruct(this.primaryType, value); + } + }, { + key: "_visit", + value: function _visit(type, value, callback) { + var _this2 = this; + + // Basic encoder type (address, bool, uint256, etc) + { + var encoder = getBaseEncoder(type); + + if (encoder) { + return callback(type, value); + } + } // Array + + var match = type.match(/^(.*)(\x5b(\d*)\x5d)$/); + + if (match) { + var subtype = match[1]; + var length = parseInt(match[3]); + + if (length >= 0 && value.length !== length) { + logger.throwArgumentError("array length mismatch; expected length ${ arrayLength }", "value", value); + } + + return value.map(function (v) { + return _this2._visit(subtype, v, callback); + }); + } // Struct + + + var fields = this.types[type]; + + if (fields) { + return fields.reduce(function (accum, _ref3) { + var name = _ref3.name, + type = _ref3.type; + accum[name] = _this2._visit(type, value[name], callback); + return accum; + }, {}); + } + + return logger.throwArgumentError("unknown type: ".concat(type), "type", type); + } + }, { + key: "visit", + value: function visit(value, callback) { + return this._visit(this.primaryType, value, callback); + } + }], [{ + key: "from", + value: function from(types) { + return new TypedDataEncoder(types); + } + }, { + key: "getPrimaryType", + value: function getPrimaryType(types) { + return TypedDataEncoder.from(types).primaryType; + } + }, { + key: "hashStruct", + value: function hashStruct(name, types, value) { + return TypedDataEncoder.from(types).hashStruct(name, value); + } + }, { + key: "hashDomain", + value: function hashDomain(domain) { + var domainFields = []; + + for (var name in domain) { + var type = domainFieldTypes[name]; + + if (!type) { + logger.throwArgumentError("invalid typed-data domain key: ".concat(JSON.stringify(name)), "domain", domain); + } + + domainFields.push({ + name: name, + type: type + }); + } + + domainFields.sort(function (a, b) { + return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name); + }); + return TypedDataEncoder.hashStruct("EIP712Domain", { + EIP712Domain: domainFields + }, domain); + } + }, { + key: "encode", + value: function encode(domain, types, value) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexConcat"])(["0x1901", TypedDataEncoder.hashDomain(domain), TypedDataEncoder.from(types).hash(value)]); + } + }, { + key: "hash", + value: function hash(domain, types, value) { + return Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_3__["keccak256"])(TypedDataEncoder.encode(domain, types, value)); + } // Replaces all address types with ENS names with their looked up address + + }, { + key: "resolveNames", + value: function resolveNames(domain, types, value, resolveName) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var ensCache, encoder, name; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + // Make a copy to isolate it from the object passed in + domain = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["shallowCopy"])(domain); // Look up all ENS names + + ensCache = {}; // Do we need to look up the domain's verifyingContract? + + if (domain.verifyingContract && !Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(domain.verifyingContract, 20)) { + ensCache[domain.verifyingContract] = "0x"; + } // We are going to use the encoder to visit all the base values + + + encoder = TypedDataEncoder.from(types); // Get a list of all the addresses + + encoder.visit(value, function (type, value) { + if (type === "address" && !Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(value, 20)) { + ensCache[value] = "0x"; + } + + return value; + }); // Lookup each name + + _context.t0 = regeneratorRuntime.keys(ensCache); + + case 6: + if ((_context.t1 = _context.t0()).done) { + _context.next = 13; + break; + } + + name = _context.t1.value; + _context.next = 10; + return resolveName(name); + + case 10: + ensCache[name] = _context.sent; + _context.next = 6; + break; + + case 13: + // Replace the domain verifyingContract if needed + if (domain.verifyingContract && ensCache[domain.verifyingContract]) { + domain.verifyingContract = ensCache[domain.verifyingContract]; + } // Replace all ENS names with their address + + + value = encoder.visit(value, function (type, value) { + if (type === "address" && ensCache[value]) { + return ensCache[value]; + } + + return value; + }); + return _context.abrupt("return", { + domain: domain, + value: value + }); + + case 16: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + } + }, { + key: "getPayload", + value: function getPayload(domain, types, value) { + // Validate the domain fields + TypedDataEncoder.hashDomain(domain); // Derive the EIP712Domain Struct reference type + + var domainValues = {}; + var domainTypes = []; + domainFieldNames.forEach(function (name) { + var value = domain[name]; + + if (value == null) { + return; + } + + domainValues[name] = domainChecks[name](value); + domainTypes.push({ + name: name, + type: domainFieldTypes[name] + }); + }); + var encoder = TypedDataEncoder.from(types); + var typesWithDomain = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["shallowCopy"])(types); + + if (typesWithDomain.EIP712Domain) { + logger.throwArgumentError("types must not contain EIP712Domain type", "types.EIP712Domain", types); + } else { + typesWithDomain.EIP712Domain = domainTypes; + } // Validate the data structures and types + + + encoder.encode(value); + return { + types: typesWithDomain, + domain: domainValues, + primaryType: encoder.primaryType, + message: encoder.visit(value, function (type, value) { + // bytes + if (type.match(/^bytes(\d*)/)) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(value)); + } // uint or int + + + if (type.match(/^u?int/)) { + return _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(value).toString(); + } + + switch (type) { + case "address": + return value.toLowerCase(); + + case "bool": + return !!value; + + case "string": + if (typeof value !== "string") { + logger.throwArgumentError("invalid string", "value", value); + } + + return value; + } + + return logger.throwArgumentError("unsupported type", "type", type); + }) + }; + } + }]); + + return TypedDataEncoder; +}(); + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/keccak256/lib.esm/index.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/keccak256/lib.esm/index.js ***! + \******************************************************************************************************/ +/*! exports provided: keccak256 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "keccak256", function() { return keccak256; }); +/* harmony import */ var js_sha3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-sha3 */ "./node_modules/js-sha3/src/sha3.js"); +/* harmony import */ var js_sha3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_sha3__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); + + + + +function keccak256(data) { + return '0x' + js_sha3__WEBPACK_IMPORTED_MODULE_0___default.a.keccak_256(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(data)); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/_version.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/_version.js ***! + \******************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "logger/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js ***! + \***************************************************************************************************/ +/*! exports provided: LogLevel, ErrorCode, Logger */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "LogLevel", function() { return LogLevel; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ErrorCode", function() { return ErrorCode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Logger", function() { return Logger; }); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/_version.js"); + + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +var _permanentCensorErrors = false; +var _censorErrors = false; +var LogLevels = { + debug: 1, + "default": 2, + info: 2, + warning: 3, + error: 4, + off: 5 +}; +var _logLevel = LogLevels["default"]; + +var _globalLogger = null; + +function _checkNormalize() { + try { + var missing = []; // Make sure all forms of normalization are supported + + ["NFD", "NFC", "NFKD", "NFKC"].forEach(function (form) { + try { + if ("test".normalize(form) !== "test") { + throw new Error("bad normalize"); + } + + ; + } catch (error) { + missing.push(form); + } + }); + + if (missing.length) { + throw new Error("missing " + missing.join(", ")); + } + + if (String.fromCharCode(0xe9).normalize("NFD") !== String.fromCharCode(0x65, 0x0301)) { + throw new Error("broken implementation"); + } + } catch (error) { + return error.message; + } + + return null; +} + +var _normalizeError = _checkNormalize(); + +var LogLevel; + +(function (LogLevel) { + LogLevel["DEBUG"] = "DEBUG"; + LogLevel["INFO"] = "INFO"; + LogLevel["WARNING"] = "WARNING"; + LogLevel["ERROR"] = "ERROR"; + LogLevel["OFF"] = "OFF"; +})(LogLevel || (LogLevel = {})); + +var ErrorCode; + +(function (ErrorCode) { + /////////////////// + // Generic Errors + // Unknown Error + ErrorCode["UNKNOWN_ERROR"] = "UNKNOWN_ERROR"; // Not Implemented + + ErrorCode["NOT_IMPLEMENTED"] = "NOT_IMPLEMENTED"; // Unsupported Operation + // - operation + + ErrorCode["UNSUPPORTED_OPERATION"] = "UNSUPPORTED_OPERATION"; // Network Error (i.e. Ethereum Network, such as an invalid chain ID) + // - event ("noNetwork" is not re-thrown in provider.ready; otherwise thrown) + + ErrorCode["NETWORK_ERROR"] = "NETWORK_ERROR"; // Some sort of bad response from the server + + ErrorCode["SERVER_ERROR"] = "SERVER_ERROR"; // Timeout + + ErrorCode["TIMEOUT"] = "TIMEOUT"; /////////////////// + // Operational Errors + // Buffer Overrun + + ErrorCode["BUFFER_OVERRUN"] = "BUFFER_OVERRUN"; // Numeric Fault + // - operation: the operation being executed + // - fault: the reason this faulted + + ErrorCode["NUMERIC_FAULT"] = "NUMERIC_FAULT"; /////////////////// + // Argument Errors + // Missing new operator to an object + // - name: The name of the class + + ErrorCode["MISSING_NEW"] = "MISSING_NEW"; // Invalid argument (e.g. value is incompatible with type) to a function: + // - argument: The argument name that was invalid + // - value: The value of the argument + + ErrorCode["INVALID_ARGUMENT"] = "INVALID_ARGUMENT"; // Missing argument to a function: + // - count: The number of arguments received + // - expectedCount: The number of arguments expected + + ErrorCode["MISSING_ARGUMENT"] = "MISSING_ARGUMENT"; // Too many arguments + // - count: The number of arguments received + // - expectedCount: The number of arguments expected + + ErrorCode["UNEXPECTED_ARGUMENT"] = "UNEXPECTED_ARGUMENT"; /////////////////// + // Blockchain Errors + // Call exception + // - transaction: the transaction + // - address?: the contract address + // - args?: The arguments passed into the function + // - method?: The Solidity method signature + // - errorSignature?: The EIP848 error signature + // - errorArgs?: The EIP848 error parameters + // - reason: The reason (only for EIP848 "Error(string)") + + ErrorCode["CALL_EXCEPTION"] = "CALL_EXCEPTION"; // Insufficient funds (< value + gasLimit * gasPrice) + // - transaction: the transaction attempted + + ErrorCode["INSUFFICIENT_FUNDS"] = "INSUFFICIENT_FUNDS"; // Nonce has already been used + // - transaction: the transaction attempted + + ErrorCode["NONCE_EXPIRED"] = "NONCE_EXPIRED"; // The replacement fee for the transaction is too low + // - transaction: the transaction attempted + + ErrorCode["REPLACEMENT_UNDERPRICED"] = "REPLACEMENT_UNDERPRICED"; // The gas limit could not be estimated + // - transaction: the transaction passed to estimateGas + + ErrorCode["UNPREDICTABLE_GAS_LIMIT"] = "UNPREDICTABLE_GAS_LIMIT"; // The transaction was replaced by one with a higher gas price + // - reason: "cancelled", "replaced" or "repriced" + // - cancelled: true if reason == "cancelled" or reason == "replaced") + // - hash: original transaction hash + // - replacement: the full TransactionsResponse for the replacement + // - receipt: the receipt of the replacement + + ErrorCode["TRANSACTION_REPLACED"] = "TRANSACTION_REPLACED"; +})(ErrorCode || (ErrorCode = {})); + +; +var HEX = "0123456789abcdef"; +var Logger = /*#__PURE__*/function () { + function Logger(version) { + _classCallCheck(this, Logger); + + Object.defineProperty(this, "version", { + enumerable: true, + value: version, + writable: false + }); + } + + _createClass(Logger, [{ + key: "_log", + value: function _log(logLevel, args) { + var level = logLevel.toLowerCase(); + + if (LogLevels[level] == null) { + this.throwArgumentError("invalid log level name", "logLevel", logLevel); + } + + if (_logLevel > LogLevels[level]) { + return; + } + + console.log.apply(console, args); + } + }, { + key: "debug", + value: function debug() { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + this._log(Logger.levels.DEBUG, args); + } + }, { + key: "info", + value: function info() { + for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + this._log(Logger.levels.INFO, args); + } + }, { + key: "warn", + value: function warn() { + for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) { + args[_key3] = arguments[_key3]; + } + + this._log(Logger.levels.WARNING, args); + } + }, { + key: "makeError", + value: function makeError(message, code, params) { + // Errors are being censored + if (_censorErrors) { + return this.makeError("censored error", code, {}); + } + + if (!code) { + code = Logger.errors.UNKNOWN_ERROR; + } + + if (!params) { + params = {}; + } + + var messageDetails = []; + Object.keys(params).forEach(function (key) { + var value = params[key]; + + try { + if (value instanceof Uint8Array) { + var hex = ""; + + for (var i = 0; i < value.length; i++) { + hex += HEX[value[i] >> 4]; + hex += HEX[value[i] & 0x0f]; + } + + messageDetails.push(key + "=Uint8Array(0x" + hex + ")"); + } else { + messageDetails.push(key + "=" + JSON.stringify(value)); + } + } catch (error) { + messageDetails.push(key + "=" + JSON.stringify(params[key].toString())); + } + }); + messageDetails.push("code=".concat(code)); + messageDetails.push("version=".concat(this.version)); + var reason = message; + + if (messageDetails.length) { + message += " (" + messageDetails.join(", ") + ")"; + } // @TODO: Any?? + + + var error = new Error(message); + error.reason = reason; + error.code = code; + Object.keys(params).forEach(function (key) { + error[key] = params[key]; + }); + return error; + } + }, { + key: "throwError", + value: function throwError(message, code, params) { + throw this.makeError(message, code, params); + } + }, { + key: "throwArgumentError", + value: function throwArgumentError(message, name, value) { + return this.throwError(message, Logger.errors.INVALID_ARGUMENT, { + argument: name, + value: value + }); + } + }, { + key: "assert", + value: function assert(condition, message, code, params) { + if (!!condition) { + return; + } + + this.throwError(message, code, params); + } + }, { + key: "assertArgument", + value: function assertArgument(condition, message, name, value) { + if (!!condition) { + return; + } + + this.throwArgumentError(message, name, value); + } + }, { + key: "checkNormalize", + value: function checkNormalize(message) { + if (message == null) { + message = "platform missing String.prototype.normalize"; + } + + if (_normalizeError) { + this.throwError("platform missing String.prototype.normalize", Logger.errors.UNSUPPORTED_OPERATION, { + operation: "String.prototype.normalize", + form: _normalizeError + }); + } + } + }, { + key: "checkSafeUint53", + value: function checkSafeUint53(value, message) { + if (typeof value !== "number") { + return; + } + + if (message == null) { + message = "value not safe"; + } + + if (value < 0 || value >= 0x1fffffffffffff) { + this.throwError(message, Logger.errors.NUMERIC_FAULT, { + operation: "checkSafeInteger", + fault: "out-of-safe-range", + value: value + }); + } + + if (value % 1) { + this.throwError(message, Logger.errors.NUMERIC_FAULT, { + operation: "checkSafeInteger", + fault: "non-integer", + value: value + }); + } + } + }, { + key: "checkArgumentCount", + value: function checkArgumentCount(count, expectedCount, message) { + if (message) { + message = ": " + message; + } else { + message = ""; + } + + if (count < expectedCount) { + this.throwError("missing argument" + message, Logger.errors.MISSING_ARGUMENT, { + count: count, + expectedCount: expectedCount + }); + } + + if (count > expectedCount) { + this.throwError("too many arguments" + message, Logger.errors.UNEXPECTED_ARGUMENT, { + count: count, + expectedCount: expectedCount + }); + } + } + }, { + key: "checkNew", + value: function checkNew(target, kind) { + if (target === Object || target == null) { + this.throwError("missing new", Logger.errors.MISSING_NEW, { + name: kind.name + }); + } + } + }, { + key: "checkAbstract", + value: function checkAbstract(target, kind) { + if (target === kind) { + this.throwError("cannot instantiate abstract class " + JSON.stringify(kind.name) + " directly; use a sub-class", Logger.errors.UNSUPPORTED_OPERATION, { + name: target.name, + operation: "new" + }); + } else if (target === Object || target == null) { + this.throwError("missing new", Logger.errors.MISSING_NEW, { + name: kind.name + }); + } + } + }], [{ + key: "globalLogger", + value: function globalLogger() { + if (!_globalLogger) { + _globalLogger = new Logger(_version__WEBPACK_IMPORTED_MODULE_0__["version"]); + } + + return _globalLogger; + } + }, { + key: "setCensorship", + value: function setCensorship(censorship, permanent) { + if (!censorship && permanent) { + this.globalLogger().throwError("cannot permanently disable censorship", Logger.errors.UNSUPPORTED_OPERATION, { + operation: "setCensorship" + }); + } + + if (_permanentCensorErrors) { + if (!censorship) { + return; + } + + this.globalLogger().throwError("error censorship permanent", Logger.errors.UNSUPPORTED_OPERATION, { + operation: "setCensorship" + }); + } + + _censorErrors = !!censorship; + _permanentCensorErrors = !!permanent; + } + }, { + key: "setLogLevel", + value: function setLogLevel(logLevel) { + var level = LogLevels[logLevel.toLowerCase()]; + + if (level == null) { + Logger.globalLogger().warn("invalid log level - " + logLevel); + return; + } + + _logLevel = level; + } + }, { + key: "from", + value: function from(version) { + return new Logger(version); + } + }]); + + return Logger; +}(); +Logger.errors = ErrorCode; +Logger.levels = LogLevel; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/networks/lib.esm/_version.js": +/*!********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/networks/lib.esm/_version.js ***! + \********************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "networks/5.5.2"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/networks/lib.esm/index.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/networks/lib.esm/index.js ***! + \*****************************************************************************************************/ +/*! exports provided: getNetwork */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getNetwork", function() { return getNetwork; }); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/networks/lib.esm/_version.js"); + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__["Logger"](_version__WEBPACK_IMPORTED_MODULE_1__["version"]); +; + +function isRenetworkable(value) { + return value && typeof value.renetwork === "function"; +} + +function ethDefaultProvider(network) { + var func = function func(providers, options) { + if (options == null) { + options = {}; + } + + var providerList = []; + + if (providers.InfuraProvider) { + try { + providerList.push(new providers.InfuraProvider(network, options.infura)); + } catch (error) {} + } + + if (providers.EtherscanProvider) { + try { + providerList.push(new providers.EtherscanProvider(network, options.etherscan)); + } catch (error) {} + } + + if (providers.AlchemyProvider) { + try { + providerList.push(new providers.AlchemyProvider(network, options.alchemy)); + } catch (error) {} + } + + if (providers.PocketProvider) { + // These networks are currently faulty on Pocket as their + // network does not handle the Berlin hardfork, which is + // live on these ones. + // @TODO: This goes away once Pocket has upgraded their nodes + var skip = ["goerli", "ropsten", "rinkeby"]; + + try { + var provider = new providers.PocketProvider(network); + + if (provider.network && skip.indexOf(provider.network.name) === -1) { + providerList.push(provider); + } + } catch (error) {} + } + + if (providers.CloudflareProvider) { + try { + providerList.push(new providers.CloudflareProvider(network)); + } catch (error) {} + } + + if (providerList.length === 0) { + return null; + } + + if (providers.FallbackProvider) { + var quorum = 1; + + if (options.quorum != null) { + quorum = options.quorum; + } else if (network === "homestead") { + quorum = 2; + } + + return new providers.FallbackProvider(providerList, quorum); + } + + return providerList[0]; + }; + + func.renetwork = function (network) { + return ethDefaultProvider(network); + }; + + return func; +} + +function etcDefaultProvider(url, network) { + var func = function func(providers, options) { + if (providers.JsonRpcProvider) { + return new providers.JsonRpcProvider(url, network); + } + + return null; + }; + + func.renetwork = function (network) { + return etcDefaultProvider(url, network); + }; + + return func; +} + +var homestead = { + chainId: 1, + ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", + name: "homestead", + _defaultProvider: ethDefaultProvider("homestead") +}; +var ropsten = { + chainId: 3, + ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", + name: "ropsten", + _defaultProvider: ethDefaultProvider("ropsten") +}; +var classicMordor = { + chainId: 63, + name: "classicMordor", + _defaultProvider: etcDefaultProvider("https://www.ethercluster.com/mordor", "classicMordor") +}; // See: https://chainlist.org + +var networks = { + unspecified: { + chainId: 0, + name: "unspecified" + }, + homestead: homestead, + mainnet: homestead, + morden: { + chainId: 2, + name: "morden" + }, + ropsten: ropsten, + testnet: ropsten, + rinkeby: { + chainId: 4, + ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", + name: "rinkeby", + _defaultProvider: ethDefaultProvider("rinkeby") + }, + kovan: { + chainId: 42, + name: "kovan", + _defaultProvider: ethDefaultProvider("kovan") + }, + goerli: { + chainId: 5, + ensAddress: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", + name: "goerli", + _defaultProvider: ethDefaultProvider("goerli") + }, + kintsugi: { + chainId: 1337702, + name: "kintsugi" + }, + // ETC (See: #351) + classic: { + chainId: 61, + name: "classic", + _defaultProvider: etcDefaultProvider("https:/\/www.ethercluster.com/etc", "classic") + }, + classicMorden: { + chainId: 62, + name: "classicMorden" + }, + classicMordor: classicMordor, + classicTestnet: classicMordor, + classicKotti: { + chainId: 6, + name: "classicKotti", + _defaultProvider: etcDefaultProvider("https:/\/www.ethercluster.com/kotti", "classicKotti") + }, + xdai: { + chainId: 100, + name: "xdai" + }, + matic: { + chainId: 137, + name: "matic" + }, + maticmum: { + chainId: 80001, + name: "maticmum" + }, + optimism: { + chainId: 10, + name: "optimism" + }, + "optimism-kovan": { + chainId: 69, + name: "optimism-kovan" + }, + "optimism-goerli": { + chainId: 420, + name: "optimism-goerli" + }, + arbitrum: { + chainId: 42161, + name: "arbitrum" + }, + "arbitrum-rinkeby": { + chainId: 421611, + name: "arbitrum-rinkeby" + }, + bnb: { + chainId: 56, + name: "bnb" + }, + bnbt: { + chainId: 97, + name: "bnbt" + } +}; +/** + * getNetwork + * + * Converts a named common networks or chain ID (network ID) to a Network + * and verifies a network is a valid Network.. + */ + +function getNetwork(network) { + // No network (null) + if (network == null) { + return null; + } + + if (typeof network === "number") { + for (var name in networks) { + var _standard = networks[name]; + + if (_standard.chainId === network) { + return { + name: _standard.name, + chainId: _standard.chainId, + ensAddress: _standard.ensAddress || null, + _defaultProvider: _standard._defaultProvider || null + }; + } + } + + return { + chainId: network, + name: "unknown" + }; + } + + if (typeof network === "string") { + var _standard2 = networks[network]; + + if (_standard2 == null) { + return null; + } + + return { + name: _standard2.name, + chainId: _standard2.chainId, + ensAddress: _standard2.ensAddress, + _defaultProvider: _standard2._defaultProvider || null + }; + } + + var standard = networks[network.name]; // Not a standard network; check that it is a valid network in general + + if (!standard) { + if (typeof network.chainId !== "number") { + logger.throwArgumentError("invalid network chainId", "network", network); + } + + return network; + } // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155) + + + if (network.chainId !== 0 && network.chainId !== standard.chainId) { + logger.throwArgumentError("network chainId mismatch", "network", network); + } // @TODO: In the next major version add an attach function to a defaultProvider + // class and move the _defaultProvider internal to this file (extend Network) + + + var defaultProvider = network._defaultProvider || null; + + if (defaultProvider == null && standard._defaultProvider) { + if (isRenetworkable(standard._defaultProvider)) { + defaultProvider = standard._defaultProvider.renetwork(network); + } else { + defaultProvider = standard._defaultProvider; + } + } // Standard Network (allow overriding the ENS address) + + + return { + name: network.name, + chainId: standard.chainId, + ensAddress: network.ensAddress || standard.ensAddress || null, + _defaultProvider: defaultProvider + }; +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/_version.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/_version.js ***! + \**********************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "properties/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js ***! + \*******************************************************************************************************/ +/*! exports provided: defineReadOnly, getStatic, resolveProperties, checkProperties, shallowCopy, deepCopy, Description */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defineReadOnly", function() { return defineReadOnly; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getStatic", function() { return getStatic; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "resolveProperties", function() { return resolveProperties; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "checkProperties", function() { return checkProperties; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shallowCopy", function() { return shallowCopy; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "deepCopy", function() { return deepCopy; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Description", function() { return Description; }); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/_version.js"); + + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__["Logger"](_version__WEBPACK_IMPORTED_MODULE_1__["version"]); +function defineReadOnly(object, name, value) { + Object.defineProperty(object, name, { + enumerable: true, + value: value, + writable: false + }); +} // Crawl up the constructor chain to find a static method + +function getStatic(ctor, key) { + for (var i = 0; i < 32; i++) { + if (ctor[key]) { + return ctor[key]; + } + + if (!ctor.prototype || _typeof(ctor.prototype) !== "object") { + break; + } + + ctor = Object.getPrototypeOf(ctor.prototype).constructor; + } + + return null; +} +function resolveProperties(object) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var promises, results; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + promises = Object.keys(object).map(function (key) { + var value = object[key]; + return Promise.resolve(value).then(function (v) { + return { + key: key, + value: v + }; + }); + }); + _context.next = 3; + return Promise.all(promises); + + case 3: + results = _context.sent; + return _context.abrupt("return", results.reduce(function (accum, result) { + accum[result.key] = result.value; + return accum; + }, {})); + + case 5: + case "end": + return _context.stop(); + } + } + }, _callee); + })); +} +function checkProperties(object, properties) { + if (!object || _typeof(object) !== "object") { + logger.throwArgumentError("invalid object", "object", object); + } + + Object.keys(object).forEach(function (key) { + if (!properties[key]) { + logger.throwArgumentError("invalid object key - " + key, "transaction:" + key, object); + } + }); +} +function shallowCopy(object) { + var result = {}; + + for (var key in object) { + result[key] = object[key]; + } + + return result; +} +var opaque = { + bigint: true, + "boolean": true, + "function": true, + number: true, + string: true +}; + +function _isFrozen(object) { + // Opaque objects are not mutable, so safe to copy by assignment + if (object === undefined || object === null || opaque[_typeof(object)]) { + return true; + } + + if (Array.isArray(object) || _typeof(object) === "object") { + if (!Object.isFrozen(object)) { + return false; + } + + var keys = Object.keys(object); + + for (var i = 0; i < keys.length; i++) { + var value = null; + + try { + value = object[keys[i]]; + } catch (error) { + // If accessing a value triggers an error, it is a getter + // designed to do so (e.g. Result) and is therefore "frozen" + continue; + } + + if (!_isFrozen(value)) { + return false; + } + } + + return true; + } + + return logger.throwArgumentError("Cannot deepCopy ".concat(_typeof(object)), "object", object); +} // Returns a new copy of object, such that no properties may be replaced. +// New properties may be added only to objects. + + +function _deepCopy(object) { + if (_isFrozen(object)) { + return object; + } // Arrays are mutable, so we need to create a copy + + + if (Array.isArray(object)) { + return Object.freeze(object.map(function (item) { + return deepCopy(item); + })); + } + + if (_typeof(object) === "object") { + var result = {}; + + for (var key in object) { + var value = object[key]; + + if (value === undefined) { + continue; + } + + defineReadOnly(result, key, deepCopy(value)); + } + + return result; + } + + return logger.throwArgumentError("Cannot deepCopy ".concat(_typeof(object)), "object", object); +} + +function deepCopy(object) { + return _deepCopy(object); +} +var Description = /*#__PURE__*/_createClass(function Description(info) { + _classCallCheck(this, Description); + + for (var key in info) { + this[key] = deepCopy(info[key]); + } +}); + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/_version.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/_version.js ***! + \******************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "random/5.5.1"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/index.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/index.js ***! + \***************************************************************************************************/ +/*! exports provided: randomBytes, shuffled */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _random__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./random */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/random.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "randomBytes", function() { return _random__WEBPACK_IMPORTED_MODULE_0__["randomBytes"]; }); + +/* harmony import */ var _shuffle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./shuffle */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/shuffle.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shuffled", function() { return _shuffle__WEBPACK_IMPORTED_MODULE_1__["shuffled"]; }); + + + + + + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/random.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/random.js ***! + \****************************************************************************************************/ +/*! exports provided: randomBytes */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "randomBytes", function() { return randomBytes; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/_version.js"); + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); // Debugging line for testing browser lib in node +//const window = { crypto: { getRandomValues: () => { } } }; +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis + +function getGlobal() { + if (typeof self !== 'undefined') { + return self; + } + + if (typeof window !== 'undefined') { + return window; + } + + if (typeof global !== 'undefined') { + return global; + } + + throw new Error('unable to locate global object'); +} + +; +var anyGlobal = getGlobal(); +var crypto = anyGlobal.crypto || anyGlobal.msCrypto; + +if (!crypto || !crypto.getRandomValues) { + logger.warn("WARNING: Missing strong random number source"); + crypto = { + getRandomValues: function getRandomValues(buffer) { + return logger.throwError("no secure random source avaialble", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "crypto.getRandomValues" + }); + } + }; +} + +function randomBytes(length) { + if (length <= 0 || length > 1024 || length % 1 || length != length) { + logger.throwArgumentError("invalid length", "length", length); + } + + var result = new Uint8Array(length); + crypto.getRandomValues(result); + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(result); +} +; +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/shuffle.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/random/lib.esm/shuffle.js ***! + \*****************************************************************************************************/ +/*! exports provided: shuffled */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shuffled", function() { return shuffled; }); + + +function shuffled(array) { + array = array.slice(); + + for (var i = array.length - 1; i > 0; i--) { + var j = Math.floor(Math.random() * (i + 1)); + var tmp = array[i]; + array[i] = array[j]; + array[j] = tmp; + } + + return array; +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/rlp/lib.esm/_version.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/rlp/lib.esm/_version.js ***! + \***************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "rlp/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/rlp/lib.esm/index.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/rlp/lib.esm/index.js ***! + \************************************************************************************************/ +/*! exports provided: encode, decode */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encode", function() { return encode; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decode", function() { return decode; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/rlp/lib.esm/_version.js"); + //See: https://github.com/ethereum/wiki/wiki/RLP + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); + +function arrayifyInteger(value) { + var result = []; + + while (value) { + result.unshift(value & 0xff); + value >>= 8; + } + + return result; +} + +function unarrayifyInteger(data, offset, length) { + var result = 0; + + for (var i = 0; i < length; i++) { + result = result * 256 + data[offset + i]; + } + + return result; +} + +function _encode(object) { + if (Array.isArray(object)) { + var payload = []; + object.forEach(function (child) { + payload = payload.concat(_encode(child)); + }); + + if (payload.length <= 55) { + payload.unshift(0xc0 + payload.length); + return payload; + } + + var _length = arrayifyInteger(payload.length); + + _length.unshift(0xf7 + _length.length); + + return _length.concat(payload); + } + + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["isBytesLike"])(object)) { + logger.throwArgumentError("RLP object must be BytesLike", "object", object); + } + + var data = Array.prototype.slice.call(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(object)); + + if (data.length === 1 && data[0] <= 0x7f) { + return data; + } else if (data.length <= 55) { + data.unshift(0x80 + data.length); + return data; + } + + var length = arrayifyInteger(data.length); + length.unshift(0xb7 + length.length); + return length.concat(data); +} + +function encode(object) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexlify"])(_encode(object)); +} + +function _decodeChildren(data, offset, childOffset, length) { + var result = []; + + while (childOffset < offset + 1 + length) { + var decoded = _decode(data, childOffset); + + result.push(decoded.result); + childOffset += decoded.consumed; + + if (childOffset > offset + 1 + length) { + logger.throwError("child data too short", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.BUFFER_OVERRUN, {}); + } + } + + return { + consumed: 1 + length, + result: result + }; +} // returns { consumed: number, result: Object } + + +function _decode(data, offset) { + if (data.length === 0) { + logger.throwError("data too short", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.BUFFER_OVERRUN, {}); + } // Array with extra length prefix + + + if (data[offset] >= 0xf8) { + var lengthLength = data[offset] - 0xf7; + + if (offset + 1 + lengthLength > data.length) { + logger.throwError("data short segment too short", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.BUFFER_OVERRUN, {}); + } + + var length = unarrayifyInteger(data, offset + 1, lengthLength); + + if (offset + 1 + lengthLength + length > data.length) { + logger.throwError("data long segment too short", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.BUFFER_OVERRUN, {}); + } + + return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length); + } else if (data[offset] >= 0xc0) { + var _length2 = data[offset] - 0xc0; + + if (offset + 1 + _length2 > data.length) { + logger.throwError("data array too short", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.BUFFER_OVERRUN, {}); + } + + return _decodeChildren(data, offset, offset + 1, _length2); + } else if (data[offset] >= 0xb8) { + var _lengthLength = data[offset] - 0xb7; + + if (offset + 1 + _lengthLength > data.length) { + logger.throwError("data array too short", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.BUFFER_OVERRUN, {}); + } + + var _length3 = unarrayifyInteger(data, offset + 1, _lengthLength); + + if (offset + 1 + _lengthLength + _length3 > data.length) { + logger.throwError("data array too short", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.BUFFER_OVERRUN, {}); + } + + var result = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexlify"])(data.slice(offset + 1 + _lengthLength, offset + 1 + _lengthLength + _length3)); + return { + consumed: 1 + _lengthLength + _length3, + result: result + }; + } else if (data[offset] >= 0x80) { + var _length4 = data[offset] - 0x80; + + if (offset + 1 + _length4 > data.length) { + logger.throwError("data too short", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.BUFFER_OVERRUN, {}); + } + + var _result = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexlify"])(data.slice(offset + 1, offset + 1 + _length4)); + + return { + consumed: 1 + _length4, + result: _result + }; + } + + return { + consumed: 1, + result: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexlify"])(data[offset]) + }; +} + +function decode(data) { + var bytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(data); + + var decoded = _decode(bytes, 0); + + if (decoded.consumed !== bytes.length) { + logger.throwArgumentError("invalid rlp data", "data", data); + } + + return decoded.result; +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/_version.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/_version.js ***! + \****************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "sha2/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/index.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/index.js ***! + \*************************************************************************************************/ +/*! exports provided: computeHmac, ripemd160, sha256, sha512, SupportedAlgorithm */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _sha2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./sha2 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/sha2.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "computeHmac", function() { return _sha2__WEBPACK_IMPORTED_MODULE_0__["computeHmac"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ripemd160", function() { return _sha2__WEBPACK_IMPORTED_MODULE_0__["ripemd160"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sha256", function() { return _sha2__WEBPACK_IMPORTED_MODULE_0__["sha256"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sha512", function() { return _sha2__WEBPACK_IMPORTED_MODULE_0__["sha512"]; }); + +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./types */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/types.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SupportedAlgorithm", function() { return _types__WEBPACK_IMPORTED_MODULE_1__["SupportedAlgorithm"]; }); + + + + + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/sha2.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/sha2.js ***! + \************************************************************************************************/ +/*! exports provided: ripemd160, sha256, sha512, computeHmac */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ripemd160", function() { return ripemd160; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sha256", function() { return sha256; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sha512", function() { return sha512; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computeHmac", function() { return computeHmac; }); +/* harmony import */ var hash_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! hash.js */ "./node_modules/hash.js/lib/hash.js"); +/* harmony import */ var hash_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(hash_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./types */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/types.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/_version.js"); + + + //const _ripemd160 = _hash.ripemd160; + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__["Logger"](_version__WEBPACK_IMPORTED_MODULE_4__["version"]); +function ripemd160(data) { + return "0x" + hash_js__WEBPACK_IMPORTED_MODULE_0___default.a.ripemd160().update(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(data)).digest("hex"); +} +function sha256(data) { + return "0x" + hash_js__WEBPACK_IMPORTED_MODULE_0___default.a.sha256().update(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(data)).digest("hex"); +} +function sha512(data) { + return "0x" + hash_js__WEBPACK_IMPORTED_MODULE_0___default.a.sha512().update(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(data)).digest("hex"); +} +function computeHmac(algorithm, key, data) { + if (!_types__WEBPACK_IMPORTED_MODULE_2__["SupportedAlgorithm"][algorithm]) { + logger.throwError("unsupported algorithm " + algorithm, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "hmac", + algorithm: algorithm + }); + } + + return "0x" + hash_js__WEBPACK_IMPORTED_MODULE_0___default.a.hmac(hash_js__WEBPACK_IMPORTED_MODULE_0___default.a[algorithm], Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(key)).update(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(data)).digest("hex"); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/types.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/sha2/lib.esm/types.js ***! + \*************************************************************************************************/ +/*! exports provided: SupportedAlgorithm */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SupportedAlgorithm", function() { return SupportedAlgorithm; }); +var SupportedAlgorithm; + +(function (SupportedAlgorithm) { + SupportedAlgorithm["sha256"] = "sha256"; + SupportedAlgorithm["sha512"] = "sha512"; +})(SupportedAlgorithm || (SupportedAlgorithm = {})); + +; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/signing-key/lib.esm/_version.js": +/*!***********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/signing-key/lib.esm/_version.js ***! + \***********************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "signing-key/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/signing-key/lib.esm/elliptic.js": +/*!***********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/signing-key/lib.esm/elliptic.js ***! + \***********************************************************************************************************/ +/*! exports provided: EC */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EC", function() { return EC$1; }); +/* harmony import */ var bn_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bn.js */ "./node_modules/bn.js/lib/bn.js"); +/* harmony import */ var bn_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bn_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var hash_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! hash.js */ "./node_modules/hash.js/lib/hash.js"); +/* harmony import */ var hash_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(hash_js__WEBPACK_IMPORTED_MODULE_1__); +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + + + +var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function getDefaultExportFromCjs(x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +function createCommonjsModule(fn, basedir, module) { + return module = { + path: basedir, + exports: {}, + require: function require(path, base) { + return commonjsRequire(path, base === undefined || base === null ? module.path : base); + } + }, fn(module, module.exports), module.exports; +} + +function getDefaultExportFromNamespaceIfPresent(n) { + return n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n; +} + +function getDefaultExportFromNamespaceIfNotNamed(n) { + return n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n; +} + +function getAugmentedNamespace(n) { + if (n.__esModule) return n; + var a = Object.defineProperty({}, '__esModule', { + value: true + }); + Object.keys(n).forEach(function (k) { + var d = Object.getOwnPropertyDescriptor(n, k); + Object.defineProperty(a, k, d.get ? d : { + enumerable: true, + get: function get() { + return n[k]; + } + }); + }); + return a; +} + +function commonjsRequire() { + throw new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs'); +} + +var minimalisticAssert = assert; + +function assert(val, msg) { + if (!val) throw new Error(msg || 'Assertion failed'); +} + +assert.equal = function assertEqual(l, r, msg) { + if (l != r) throw new Error(msg || 'Assertion failed: ' + l + ' != ' + r); +}; + +var utils_1 = createCommonjsModule(function (module, exports) { + 'use strict'; + + var utils = exports; + + function toArray(msg, enc) { + if (Array.isArray(msg)) return msg.slice(); + if (!msg) return []; + var res = []; + + if (typeof msg !== 'string') { + for (var i = 0; i < msg.length; i++) { + res[i] = msg[i] | 0; + } + + return res; + } + + if (enc === 'hex') { + msg = msg.replace(/[^a-z0-9]+/ig, ''); + if (msg.length % 2 !== 0) msg = '0' + msg; + + for (var i = 0; i < msg.length; i += 2) { + res.push(parseInt(msg[i] + msg[i + 1], 16)); + } + } else { + for (var i = 0; i < msg.length; i++) { + var c = msg.charCodeAt(i); + var hi = c >> 8; + var lo = c & 0xff; + if (hi) res.push(hi, lo);else res.push(lo); + } + } + + return res; + } + + utils.toArray = toArray; + + function zero2(word) { + if (word.length === 1) return '0' + word;else return word; + } + + utils.zero2 = zero2; + + function toHex(msg) { + var res = ''; + + for (var i = 0; i < msg.length; i++) { + res += zero2(msg[i].toString(16)); + } + + return res; + } + + utils.toHex = toHex; + + utils.encode = function encode(arr, enc) { + if (enc === 'hex') return toHex(arr);else return arr; + }; +}); +var utils_1$1 = createCommonjsModule(function (module, exports) { + 'use strict'; + + var utils = exports; + utils.assert = minimalisticAssert; + utils.toArray = utils_1.toArray; + utils.zero2 = utils_1.zero2; + utils.toHex = utils_1.toHex; + utils.encode = utils_1.encode; // Represent num in a w-NAF form + + function getNAF(num, w, bits) { + var naf = new Array(Math.max(num.bitLength(), bits) + 1); + naf.fill(0); + var ws = 1 << w + 1; + var k = num.clone(); + + for (var i = 0; i < naf.length; i++) { + var z; + var mod = k.andln(ws - 1); + + if (k.isOdd()) { + if (mod > (ws >> 1) - 1) z = (ws >> 1) - mod;else z = mod; + k.isubn(z); + } else { + z = 0; + } + + naf[i] = z; + k.iushrn(1); + } + + return naf; + } + + utils.getNAF = getNAF; // Represent k1, k2 in a Joint Sparse Form + + function getJSF(k1, k2) { + var jsf = [[], []]; + k1 = k1.clone(); + k2 = k2.clone(); + var d1 = 0; + var d2 = 0; + var m8; + + while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) { + // First phase + var m14 = k1.andln(3) + d1 & 3; + var m24 = k2.andln(3) + d2 & 3; + if (m14 === 3) m14 = -1; + if (m24 === 3) m24 = -1; + var u1; + + if ((m14 & 1) === 0) { + u1 = 0; + } else { + m8 = k1.andln(7) + d1 & 7; + if ((m8 === 3 || m8 === 5) && m24 === 2) u1 = -m14;else u1 = m14; + } + + jsf[0].push(u1); + var u2; + + if ((m24 & 1) === 0) { + u2 = 0; + } else { + m8 = k2.andln(7) + d2 & 7; + if ((m8 === 3 || m8 === 5) && m14 === 2) u2 = -m24;else u2 = m24; + } + + jsf[1].push(u2); // Second phase + + if (2 * d1 === u1 + 1) d1 = 1 - d1; + if (2 * d2 === u2 + 1) d2 = 1 - d2; + k1.iushrn(1); + k2.iushrn(1); + } + + return jsf; + } + + utils.getJSF = getJSF; + + function cachedProperty(obj, name, computer) { + var key = '_' + name; + + obj.prototype[name] = function cachedProperty() { + return this[key] !== undefined ? this[key] : this[key] = computer.call(this); + }; + } + + utils.cachedProperty = cachedProperty; + + function parseBytes(bytes) { + return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') : bytes; + } + + utils.parseBytes = parseBytes; + + function intFromLE(bytes) { + return new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(bytes, 'hex', 'le'); + } + + utils.intFromLE = intFromLE; +}); +'use strict'; + +var getNAF = utils_1$1.getNAF; +var getJSF = utils_1$1.getJSF; +var assert$1 = utils_1$1.assert; + +function BaseCurve(type, conf) { + this.type = type; + this.p = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(conf.p, 16); // Use Montgomery, when there is no fast reduction for the prime + + this.red = conf.prime ? bn_js__WEBPACK_IMPORTED_MODULE_0___default.a.red(conf.prime) : bn_js__WEBPACK_IMPORTED_MODULE_0___default.a.mont(this.p); // Useful for many curves + + this.zero = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(0).toRed(this.red); + this.one = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(1).toRed(this.red); + this.two = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(2).toRed(this.red); // Curve configuration, optional + + this.n = conf.n && new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(conf.n, 16); + this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed); // Temporary arrays + + 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; // Generalized Greg Maxwell's trick + + var adjustCount = this.n && this.p.div(this.n); + + if (!adjustCount || adjustCount.cmpn(100) > 0) { + this.redN = null; + } else { + this._maxwellTrick = true; + this.redN = this.n.toRed(this.red); + } +} + +var base = BaseCurve; + +BaseCurve.prototype.point = function point() { + throw new Error('Not implemented'); +}; + +BaseCurve.prototype.validate = function validate() { + throw new Error('Not implemented'); +}; + +BaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) { + assert$1(p.precomputed); + + var doubles = p._getDoubles(); + + var naf = getNAF(k, 1, this._bitLength); + var I = (1 << doubles.step + 1) - (doubles.step % 2 === 0 ? 2 : 1); + I /= 3; // Translate into more windowed form + + var repr = []; + var j; + var nafW; + + for (j = 0; j < naf.length; j += doubles.step) { + nafW = 0; + + for (var l = j + doubles.step - 1; l >= j; l--) { + nafW = (nafW << 1) + naf[l]; + } + + repr.push(nafW); + } + + var a = this.jpoint(null, null, null); + var b = this.jpoint(null, null, null); + + for (var i = I; i > 0; i--) { + for (j = 0; j < repr.length; j++) { + nafW = repr[j]; + if (nafW === i) b = b.mixedAdd(doubles.points[j]);else if (nafW === -i) b = b.mixedAdd(doubles.points[j].neg()); + } + + a = a.add(b); + } + + return a.toP(); +}; + +BaseCurve.prototype._wnafMul = function _wnafMul(p, k) { + var w = 4; // Precompute window + + var nafPoints = p._getNAFPoints(w); + + w = nafPoints.wnd; + var wnd = nafPoints.points; // Get NAF form + + var naf = getNAF(k, w, this._bitLength); // Add `this`*(N+1) for every w-NAF index + + var acc = this.jpoint(null, null, null); + + for (var i = naf.length - 1; i >= 0; i--) { + // Count zeroes + for (var l = 0; i >= 0 && naf[i] === 0; i--) { + l++; + } + + if (i >= 0) l++; + acc = acc.dblp(l); + if (i < 0) break; + var z = naf[i]; + assert$1(z !== 0); + + if (p.type === 'affine') { + // J +- P + if (z > 0) acc = acc.mixedAdd(wnd[z - 1 >> 1]);else acc = acc.mixedAdd(wnd[-z - 1 >> 1].neg()); + } else { + // J +- J + if (z > 0) acc = acc.add(wnd[z - 1 >> 1]);else acc = acc.add(wnd[-z - 1 >> 1].neg()); + } + } + + return p.type === 'affine' ? acc.toP() : acc; +}; + +BaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW, points, coeffs, len, jacobianResult) { + var wndWidth = this._wnafT1; + var wnd = this._wnafT2; + var naf = this._wnafT3; // Fill all arrays + + var max = 0; + var i; + var j; + var p; + + for (i = 0; i < len; i++) { + p = points[i]; + + var nafPoints = p._getNAFPoints(defW); + + wndWidth[i] = nafPoints.wnd; + wnd[i] = nafPoints.points; + } // Comb small window NAFs + + + for (i = len - 1; i >= 1; i -= 2) { + var a = i - 1; + var b = i; + + if (wndWidth[a] !== 1 || wndWidth[b] !== 1) { + naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength); + naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength); + max = Math.max(naf[a].length, max); + max = Math.max(naf[b].length, max); + continue; + } + + var comb = [points[a], + /* 1 */ + null, + /* 3 */ + null, + /* 5 */ + points[b] + /* 7 */ + ]; // Try to avoid Projective points, if possible + + if (points[a].y.cmp(points[b].y) === 0) { + comb[1] = points[a].add(points[b]); + comb[2] = points[a].toJ().mixedAdd(points[b].neg()); + } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) { + comb[1] = points[a].toJ().mixedAdd(points[b]); + comb[2] = points[a].add(points[b].neg()); + } else { + comb[1] = points[a].toJ().mixedAdd(points[b]); + comb[2] = points[a].toJ().mixedAdd(points[b].neg()); + } + + var index = [-3, + /* -1 -1 */ + -1, + /* -1 0 */ + -5, + /* -1 1 */ + -7, + /* 0 -1 */ + 0, + /* 0 0 */ + 7, + /* 0 1 */ + 5, + /* 1 -1 */ + 1, + /* 1 0 */ + 3 + /* 1 1 */ + ]; + var jsf = getJSF(coeffs[a], coeffs[b]); + max = Math.max(jsf[0].length, max); + naf[a] = new Array(max); + naf[b] = new Array(max); + + for (j = 0; j < max; j++) { + var ja = jsf[0][j] | 0; + var jb = jsf[1][j] | 0; + naf[a][j] = index[(ja + 1) * 3 + (jb + 1)]; + naf[b][j] = 0; + wnd[a] = comb; + } + } + + var acc = this.jpoint(null, null, null); + var tmp = this._wnafT4; + + for (i = max; i >= 0; i--) { + var k = 0; + + while (i >= 0) { + var zero = true; + + for (j = 0; j < len; j++) { + tmp[j] = naf[j][i] | 0; + if (tmp[j] !== 0) zero = false; + } + + if (!zero) break; + k++; + i--; + } + + if (i >= 0) k++; + acc = acc.dblp(k); + if (i < 0) break; + + for (j = 0; j < len; j++) { + var z = tmp[j]; + p; + if (z === 0) continue;else if (z > 0) p = wnd[j][z - 1 >> 1];else if (z < 0) p = wnd[j][-z - 1 >> 1].neg(); + if (p.type === 'affine') acc = acc.mixedAdd(p);else acc = acc.add(p); + } + } // Zeroify references + + + for (i = 0; i < len; i++) { + wnd[i] = null; + } + + if (jacobianResult) return acc;else return acc.toP(); +}; + +function BasePoint(curve, type) { + this.curve = curve; + this.type = type; + this.precomputed = null; +} + +BaseCurve.BasePoint = BasePoint; + +BasePoint.prototype.eq = function + /*other*/ +eq() { + throw new Error('Not implemented'); +}; + +BasePoint.prototype.validate = function validate() { + return this.curve.validate(this); +}; + +BaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) { + bytes = utils_1$1.toArray(bytes, enc); + var len = this.p.byteLength(); // uncompressed, hybrid-odd, hybrid-even + + if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) && bytes.length - 1 === 2 * len) { + if (bytes[0] === 0x06) assert$1(bytes[bytes.length - 1] % 2 === 0);else if (bytes[0] === 0x07) assert$1(bytes[bytes.length - 1] % 2 === 1); + var res = this.point(bytes.slice(1, 1 + len), bytes.slice(1 + len, 1 + 2 * len)); + return res; + } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) && bytes.length - 1 === len) { + return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03); + } + + throw new Error('Unknown point format'); +}; + +BasePoint.prototype.encodeCompressed = function encodeCompressed(enc) { + return this.encode(enc, true); +}; + +BasePoint.prototype._encode = function _encode(compact) { + var len = this.curve.p.byteLength(); + var x = this.getX().toArray('be', len); + if (compact) return [this.getY().isEven() ? 0x02 : 0x03].concat(x); + return [0x04].concat(x, this.getY().toArray('be', len)); +}; + +BasePoint.prototype.encode = function encode(enc, compact) { + return utils_1$1.encode(this._encode(compact), enc); +}; + +BasePoint.prototype.precompute = function precompute(power) { + if (this.precomputed) return this; + var precomputed = { + doubles: null, + naf: null, + beta: null + }; + precomputed.naf = this._getNAFPoints(8); + precomputed.doubles = this._getDoubles(4, power); + precomputed.beta = this._getBeta(); + this.precomputed = precomputed; + return this; +}; + +BasePoint.prototype._hasDoubles = function _hasDoubles(k) { + if (!this.precomputed) return false; + var doubles = this.precomputed.doubles; + if (!doubles) return false; + return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step); +}; + +BasePoint.prototype._getDoubles = function _getDoubles(step, power) { + if (this.precomputed && this.precomputed.doubles) return this.precomputed.doubles; + var doubles = [this]; + var acc = this; + + for (var i = 0; i < power; i += step) { + for (var j = 0; j < step; j++) { + acc = acc.dbl(); + } + + doubles.push(acc); + } + + return { + step: step, + points: doubles + }; +}; + +BasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) { + if (this.precomputed && this.precomputed.naf) return this.precomputed.naf; + var res = [this]; + var max = (1 << wnd) - 1; + var dbl = max === 1 ? null : this.dbl(); + + for (var i = 1; i < max; i++) { + res[i] = res[i - 1].add(dbl); + } + + return { + wnd: wnd, + points: res + }; +}; + +BasePoint.prototype._getBeta = function _getBeta() { + return null; +}; + +BasePoint.prototype.dblp = function dblp(k) { + var r = this; + + for (var i = 0; i < k; i++) { + r = r.dbl(); + } + + return r; +}; + +var inherits_browser = createCommonjsModule(function (module) { + if (typeof Object.create === 'function') { + // implementation from standard node.js 'util' module + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); + } + }; + } else { + // old school shim for old browsers + module.exports = function inherits(ctor, superCtor) { + if (superCtor) { + ctor.super_ = superCtor; + + var TempCtor = function TempCtor() {}; + + TempCtor.prototype = superCtor.prototype; + ctor.prototype = new TempCtor(); + ctor.prototype.constructor = ctor; + } + }; + } +}); +'use strict'; + +var assert$2 = utils_1$1.assert; + +function ShortCurve(conf) { + base.call(this, 'short', conf); + this.a = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(conf.a, 16).toRed(this.red); + this.b = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(conf.b, 16).toRed(this.red); + this.tinv = this.two.redInvm(); + this.zeroA = this.a.fromRed().cmpn(0) === 0; + this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0; // If the curve is endomorphic, precalculate beta and lambda + + this.endo = this._getEndomorphism(conf); + this._endoWnafT1 = new Array(4); + this._endoWnafT2 = new Array(4); +} + +inherits_browser(ShortCurve, base); +var short_1 = ShortCurve; + +ShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) { + // No efficient endomorphism + if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1) return; // Compute beta and lambda, that lambda * P = (beta * Px; Py) + + var beta; + var lambda; + + if (conf.beta) { + beta = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(conf.beta, 16).toRed(this.red); + } else { + var betas = this._getEndoRoots(this.p); // Choose the smallest beta + + + beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1]; + beta = beta.toRed(this.red); + } + + if (conf.lambda) { + lambda = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(conf.lambda, 16); + } else { + // Choose the lambda that is matching selected beta + var lambdas = this._getEndoRoots(this.n); + + if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) { + lambda = lambdas[0]; + } else { + lambda = lambdas[1]; + assert$2(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0); + } + } // Get basis vectors, used for balanced length-two representation + + + var basis; + + if (conf.basis) { + basis = conf.basis.map(function (vec) { + return { + a: new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(vec.a, 16), + b: new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(vec.b, 16) + }; + }); + } else { + basis = this._getEndoBasis(lambda); + } + + return { + beta: beta, + lambda: lambda, + basis: basis + }; +}; + +ShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) { + // Find roots of for x^2 + x + 1 in F + // Root = (-1 +- Sqrt(-3)) / 2 + // + var red = num === this.p ? this.red : bn_js__WEBPACK_IMPORTED_MODULE_0___default.a.mont(num); + var tinv = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(2).toRed(red).redInvm(); + var ntinv = tinv.redNeg(); + var s = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(3).toRed(red).redNeg().redSqrt().redMul(tinv); + var l1 = ntinv.redAdd(s).fromRed(); + var l2 = ntinv.redSub(s).fromRed(); + return [l1, l2]; +}; + +ShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) { + // aprxSqrt >= sqrt(this.n) + var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2)); // 3.74 + // Run EGCD, until r(L + 1) < aprxSqrt + + var u = lambda; + var v = this.n.clone(); + var x1 = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(1); + var y1 = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(0); + var x2 = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(0); + var y2 = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(1); // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n) + + var a0; + var b0; // First vector + + var a1; + var b1; // Second vector + + var a2; + var b2; + var prevR; + var i = 0; + var r; + var x; + + while (u.cmpn(0) !== 0) { + var q = v.div(u); + r = v.sub(q.mul(u)); + x = x2.sub(q.mul(x1)); + var y = y2.sub(q.mul(y1)); + + if (!a1 && r.cmp(aprxSqrt) < 0) { + a0 = prevR.neg(); + b0 = x1; + a1 = r.neg(); + b1 = x; + } else if (a1 && ++i === 2) { + break; + } + + prevR = r; + v = u; + u = r; + x2 = x1; + x1 = x; + y2 = y1; + y1 = y; + } + + a2 = r.neg(); + b2 = x; + var len1 = a1.sqr().add(b1.sqr()); + var len2 = a2.sqr().add(b2.sqr()); + + if (len2.cmp(len1) >= 0) { + a2 = a0; + b2 = b0; + } // Normalize signs + + + if (a1.negative) { + a1 = a1.neg(); + b1 = b1.neg(); + } + + if (a2.negative) { + a2 = a2.neg(); + b2 = b2.neg(); + } + + return [{ + a: a1, + b: b1 + }, { + a: a2, + b: b2 + }]; +}; + +ShortCurve.prototype._endoSplit = function _endoSplit(k) { + var basis = this.endo.basis; + var v1 = basis[0]; + var v2 = basis[1]; + var c1 = v2.b.mul(k).divRound(this.n); + var c2 = v1.b.neg().mul(k).divRound(this.n); + var p1 = c1.mul(v1.a); + var p2 = c2.mul(v2.a); + var q1 = c1.mul(v1.b); + var q2 = c2.mul(v2.b); // Calculate answer + + var k1 = k.sub(p1).sub(p2); + var k2 = q1.add(q2).neg(); + return { + k1: k1, + k2: k2 + }; +}; + +ShortCurve.prototype.pointFromX = function pointFromX(x, odd) { + x = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(x, 16); + if (!x.red) x = x.toRed(this.red); + var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b); + var y = y2.redSqrt(); + if (y.redSqr().redSub(y2).cmp(this.zero) !== 0) throw new Error('invalid point'); // XXX Is there any way to tell if the number is odd without converting it + // to non-red form? + + var isOdd = y.fromRed().isOdd(); + if (odd && !isOdd || !odd && isOdd) y = y.redNeg(); + return this.point(x, y); +}; + +ShortCurve.prototype.validate = function validate(point) { + if (point.inf) return true; + var x = point.x; + var y = point.y; + var ax = this.a.redMul(x); + var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b); + return y.redSqr().redISub(rhs).cmpn(0) === 0; +}; + +ShortCurve.prototype._endoWnafMulAdd = function _endoWnafMulAdd(points, coeffs, jacobianResult) { + var npoints = this._endoWnafT1; + var ncoeffs = this._endoWnafT2; + + for (var i = 0; i < points.length; i++) { + var split = this._endoSplit(coeffs[i]); + + var p = points[i]; + + var beta = p._getBeta(); + + if (split.k1.negative) { + split.k1.ineg(); + p = p.neg(true); + } + + if (split.k2.negative) { + split.k2.ineg(); + beta = beta.neg(true); + } + + npoints[i * 2] = p; + npoints[i * 2 + 1] = beta; + ncoeffs[i * 2] = split.k1; + ncoeffs[i * 2 + 1] = split.k2; + } + + var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult); // Clean-up references to points and coefficients + + + for (var j = 0; j < i * 2; j++) { + npoints[j] = null; + ncoeffs[j] = null; + } + + return res; +}; + +function Point(curve, x, y, isRed) { + base.BasePoint.call(this, curve, 'affine'); + + if (x === null && y === null) { + this.x = null; + this.y = null; + this.inf = true; + } else { + this.x = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(x, 16); + this.y = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(y, 16); // Force redgomery representation when loading from JSON + + if (isRed) { + this.x.forceRed(this.curve.red); + this.y.forceRed(this.curve.red); + } + + if (!this.x.red) this.x = this.x.toRed(this.curve.red); + if (!this.y.red) this.y = this.y.toRed(this.curve.red); + this.inf = false; + } +} + +inherits_browser(Point, base.BasePoint); + +ShortCurve.prototype.point = function point(x, y, isRed) { + return new Point(this, x, y, isRed); +}; + +ShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) { + return Point.fromJSON(this, obj, red); +}; + +Point.prototype._getBeta = function _getBeta() { + if (!this.curve.endo) return; + var pre = this.precomputed; + if (pre && pre.beta) return pre.beta; + var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y); + + if (pre) { + var curve = this.curve; + + var endoMul = function endoMul(p) { + return curve.point(p.x.redMul(curve.endo.beta), p.y); + }; + + pre.beta = beta; + beta.precomputed = { + beta: null, + naf: pre.naf && { + wnd: pre.naf.wnd, + points: pre.naf.points.map(endoMul) + }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(endoMul) + } + }; + } + + return beta; +}; + +Point.prototype.toJSON = function toJSON() { + if (!this.precomputed) return [this.x, this.y]; + return [this.x, this.y, this.precomputed && { + doubles: this.precomputed.doubles && { + step: this.precomputed.doubles.step, + points: this.precomputed.doubles.points.slice(1) + }, + naf: this.precomputed.naf && { + wnd: this.precomputed.naf.wnd, + points: this.precomputed.naf.points.slice(1) + } + }]; +}; + +Point.fromJSON = function fromJSON(curve, obj, red) { + if (typeof obj === 'string') obj = JSON.parse(obj); + var res = curve.point(obj[0], obj[1], red); + if (!obj[2]) return res; + + function obj2point(obj) { + return curve.point(obj[0], obj[1], red); + } + + var pre = obj[2]; + res.precomputed = { + beta: null, + doubles: pre.doubles && { + step: pre.doubles.step, + points: [res].concat(pre.doubles.points.map(obj2point)) + }, + naf: pre.naf && { + wnd: pre.naf.wnd, + points: [res].concat(pre.naf.points.map(obj2point)) + } + }; + return res; +}; + +Point.prototype.inspect = function inspect() { + if (this.isInfinity()) return ''; + return ''; +}; + +Point.prototype.isInfinity = function isInfinity() { + return this.inf; +}; + +Point.prototype.add = function add(p) { + // O + P = P + if (this.inf) return p; // P + O = P + + if (p.inf) return this; // P + P = 2P + + if (this.eq(p)) return this.dbl(); // P + (-P) = O + + if (this.neg().eq(p)) return this.curve.point(null, null); // P + Q = O + + if (this.x.cmp(p.x) === 0) return this.curve.point(null, null); + var c = this.y.redSub(p.y); + if (c.cmpn(0) !== 0) c = c.redMul(this.x.redSub(p.x).redInvm()); + var nx = c.redSqr().redISub(this.x).redISub(p.x); + var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); + return this.curve.point(nx, ny); +}; + +Point.prototype.dbl = function dbl() { + if (this.inf) return this; // 2P = O + + var ys1 = this.y.redAdd(this.y); + if (ys1.cmpn(0) === 0) return this.curve.point(null, null); + var a = this.curve.a; + var x2 = this.x.redSqr(); + var dyinv = ys1.redInvm(); + var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv); + var nx = c.redSqr().redISub(this.x.redAdd(this.x)); + var ny = c.redMul(this.x.redSub(nx)).redISub(this.y); + return this.curve.point(nx, ny); +}; + +Point.prototype.getX = function getX() { + return this.x.fromRed(); +}; + +Point.prototype.getY = function getY() { + return this.y.fromRed(); +}; + +Point.prototype.mul = function mul(k) { + k = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(k, 16); + if (this.isInfinity()) return this;else if (this._hasDoubles(k)) return this.curve._fixedNafMul(this, k);else if (this.curve.endo) return this.curve._endoWnafMulAdd([this], [k]);else return this.curve._wnafMul(this, k); +}; + +Point.prototype.mulAdd = function mulAdd(k1, p2, k2) { + var points = [this, p2]; + var coeffs = [k1, k2]; + if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs);else return this.curve._wnafMulAdd(1, points, coeffs, 2); +}; + +Point.prototype.jmulAdd = function jmulAdd(k1, p2, k2) { + var points = [this, p2]; + var coeffs = [k1, k2]; + if (this.curve.endo) return this.curve._endoWnafMulAdd(points, coeffs, true);else return this.curve._wnafMulAdd(1, points, coeffs, 2, true); +}; + +Point.prototype.eq = function eq(p) { + return this === p || this.inf === p.inf && (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0); +}; + +Point.prototype.neg = function neg(_precompute) { + if (this.inf) return this; + var res = this.curve.point(this.x, this.y.redNeg()); + + if (_precompute && this.precomputed) { + var pre = this.precomputed; + + var negate = function negate(p) { + return p.neg(); + }; + + res.precomputed = { + naf: pre.naf && { + wnd: pre.naf.wnd, + points: pre.naf.points.map(negate) + }, + doubles: pre.doubles && { + step: pre.doubles.step, + points: pre.doubles.points.map(negate) + } + }; + } + + return res; +}; + +Point.prototype.toJ = function toJ() { + if (this.inf) return this.curve.jpoint(null, null, null); + var res = this.curve.jpoint(this.x, this.y, this.curve.one); + return res; +}; + +function JPoint(curve, x, y, z) { + base.BasePoint.call(this, curve, 'jacobian'); + + if (x === null && y === null && z === null) { + this.x = this.curve.one; + this.y = this.curve.one; + this.z = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(0); + } else { + this.x = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(x, 16); + this.y = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(y, 16); + this.z = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(z, 16); + } + + if (!this.x.red) this.x = this.x.toRed(this.curve.red); + if (!this.y.red) this.y = this.y.toRed(this.curve.red); + if (!this.z.red) this.z = this.z.toRed(this.curve.red); + this.zOne = this.z === this.curve.one; +} + +inherits_browser(JPoint, base.BasePoint); + +ShortCurve.prototype.jpoint = function jpoint(x, y, z) { + return new JPoint(this, x, y, z); +}; + +JPoint.prototype.toP = function toP() { + if (this.isInfinity()) return this.curve.point(null, null); + var zinv = this.z.redInvm(); + var zinv2 = zinv.redSqr(); + var ax = this.x.redMul(zinv2); + var ay = this.y.redMul(zinv2).redMul(zinv); + return this.curve.point(ax, ay); +}; + +JPoint.prototype.neg = function neg() { + return this.curve.jpoint(this.x, this.y.redNeg(), this.z); +}; + +JPoint.prototype.add = function add(p) { + // O + P = P + if (this.isInfinity()) return p; // P + O = P + + if (p.isInfinity()) return this; // 12M + 4S + 7A + + var pz2 = p.z.redSqr(); + var z2 = this.z.redSqr(); + var u1 = this.x.redMul(pz2); + var u2 = p.x.redMul(z2); + var s1 = this.y.redMul(pz2.redMul(p.z)); + var s2 = p.y.redMul(z2.redMul(this.z)); + var h = u1.redSub(u2); + var r = s1.redSub(s2); + + if (h.cmpn(0) === 0) { + if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);else return this.dbl(); + } + + var h2 = h.redSqr(); + var h3 = h2.redMul(h); + var v = u1.redMul(h2); + var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); + var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); + var nz = this.z.redMul(p.z).redMul(h); + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype.mixedAdd = function mixedAdd(p) { + // O + P = P + if (this.isInfinity()) return p.toJ(); // P + O = P + + if (p.isInfinity()) return this; // 8M + 3S + 7A + + var z2 = this.z.redSqr(); + var u1 = this.x; + var u2 = p.x.redMul(z2); + var s1 = this.y; + var s2 = p.y.redMul(z2).redMul(this.z); + var h = u1.redSub(u2); + var r = s1.redSub(s2); + + if (h.cmpn(0) === 0) { + if (r.cmpn(0) !== 0) return this.curve.jpoint(null, null, null);else return this.dbl(); + } + + var h2 = h.redSqr(); + var h3 = h2.redMul(h); + var v = u1.redMul(h2); + var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v); + var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)); + var nz = this.z.redMul(h); + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype.dblp = function dblp(pow) { + if (pow === 0) return this; + if (this.isInfinity()) return this; + if (!pow) return this.dbl(); + var i; + + if (this.curve.zeroA || this.curve.threeA) { + var r = this; + + for (i = 0; i < pow; i++) { + r = r.dbl(); + } + + return r; + } // 1M + 2S + 1A + N * (4S + 5M + 8A) + // N = 1 => 6M + 6S + 9A + + + var a = this.curve.a; + var tinv = this.curve.tinv; + var jx = this.x; + var jy = this.y; + var jz = this.z; + var jz4 = jz.redSqr().redSqr(); // Reuse results + + var jyd = jy.redAdd(jy); + + for (i = 0; i < pow; i++) { + var jx2 = jx.redSqr(); + var jyd2 = jyd.redSqr(); + var jyd4 = jyd2.redSqr(); + var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); + var t1 = jx.redMul(jyd2); + var nx = c.redSqr().redISub(t1.redAdd(t1)); + var t2 = t1.redISub(nx); + var dny = c.redMul(t2); + dny = dny.redIAdd(dny).redISub(jyd4); + var nz = jyd.redMul(jz); + if (i + 1 < pow) jz4 = jz4.redMul(jyd4); + jx = nx; + jz = nz; + jyd = dny; + } + + return this.curve.jpoint(jx, jyd.redMul(tinv), jz); +}; + +JPoint.prototype.dbl = function dbl() { + if (this.isInfinity()) return this; + if (this.curve.zeroA) return this._zeroDbl();else if (this.curve.threeA) return this._threeDbl();else return this._dbl(); +}; + +JPoint.prototype._zeroDbl = function _zeroDbl() { + var nx; + var ny; + var nz; // Z = 1 + + if (this.zOne) { + // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html + // #doubling-mdbl-2007-bl + // 1M + 5S + 14A + // XX = X1^2 + var xx = this.x.redSqr(); // YY = Y1^2 + + var yy = this.y.redSqr(); // YYYY = YY^2 + + var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY) + + var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + s = s.redIAdd(s); // M = 3 * XX + a; a = 0 + + var m = xx.redAdd(xx).redIAdd(xx); // T = M ^ 2 - 2*S + + var t = m.redSqr().redISub(s).redISub(s); // 8 * YYYY + + var yyyy8 = yyyy.redIAdd(yyyy); + yyyy8 = yyyy8.redIAdd(yyyy8); + yyyy8 = yyyy8.redIAdd(yyyy8); // X3 = T + + nx = t; // Y3 = M * (S - T) - 8 * YYYY + + ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2*Y1 + + nz = this.y.redAdd(this.y); + } else { + // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html + // #doubling-dbl-2009-l + // 2M + 5S + 13A + // A = X1^2 + var a = this.x.redSqr(); // B = Y1^2 + + var b = this.y.redSqr(); // C = B^2 + + var c = b.redSqr(); // D = 2 * ((X1 + B)^2 - A - C) + + var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c); + d = d.redIAdd(d); // E = 3 * A + + var e = a.redAdd(a).redIAdd(a); // F = E^2 + + var f = e.redSqr(); // 8 * C + + var c8 = c.redIAdd(c); + c8 = c8.redIAdd(c8); + c8 = c8.redIAdd(c8); // X3 = F - 2 * D + + nx = f.redISub(d).redISub(d); // Y3 = E * (D - X3) - 8 * C + + ny = e.redMul(d.redISub(nx)).redISub(c8); // Z3 = 2 * Y1 * Z1 + + nz = this.y.redMul(this.z); + nz = nz.redIAdd(nz); + } + + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype._threeDbl = function _threeDbl() { + var nx; + var ny; + var nz; // Z = 1 + + if (this.zOne) { + // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html + // #doubling-mdbl-2007-bl + // 1M + 5S + 15A + // XX = X1^2 + var xx = this.x.redSqr(); // YY = Y1^2 + + var yy = this.y.redSqr(); // YYYY = YY^2 + + var yyyy = yy.redSqr(); // S = 2 * ((X1 + YY)^2 - XX - YYYY) + + var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + s = s.redIAdd(s); // M = 3 * XX + a + + var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a); // T = M^2 - 2 * S + + var t = m.redSqr().redISub(s).redISub(s); // X3 = T + + nx = t; // Y3 = M * (S - T) - 8 * YYYY + + var yyyy8 = yyyy.redIAdd(yyyy); + yyyy8 = yyyy8.redIAdd(yyyy8); + yyyy8 = yyyy8.redIAdd(yyyy8); + ny = m.redMul(s.redISub(t)).redISub(yyyy8); // Z3 = 2 * Y1 + + nz = this.y.redAdd(this.y); + } else { + // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b + // 3M + 5S + // delta = Z1^2 + var delta = this.z.redSqr(); // gamma = Y1^2 + + var gamma = this.y.redSqr(); // beta = X1 * gamma + + var beta = this.x.redMul(gamma); // alpha = 3 * (X1 - delta) * (X1 + delta) + + var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta)); + alpha = alpha.redAdd(alpha).redIAdd(alpha); // X3 = alpha^2 - 8 * beta + + var beta4 = beta.redIAdd(beta); + beta4 = beta4.redIAdd(beta4); + var beta8 = beta4.redAdd(beta4); + nx = alpha.redSqr().redISub(beta8); // Z3 = (Y1 + Z1)^2 - gamma - delta + + nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta); // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2 + + var ggamma8 = gamma.redSqr(); + ggamma8 = ggamma8.redIAdd(ggamma8); + ggamma8 = ggamma8.redIAdd(ggamma8); + ggamma8 = ggamma8.redIAdd(ggamma8); + ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8); + } + + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype._dbl = function _dbl() { + var a = this.curve.a; // 4M + 6S + 10A + + var jx = this.x; + var jy = this.y; + var jz = this.z; + var jz4 = jz.redSqr().redSqr(); + var jx2 = jx.redSqr(); + var jy2 = jy.redSqr(); + var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4)); + var jxd4 = jx.redAdd(jx); + jxd4 = jxd4.redIAdd(jxd4); + var t1 = jxd4.redMul(jy2); + var nx = c.redSqr().redISub(t1.redAdd(t1)); + var t2 = t1.redISub(nx); + var jyd8 = jy2.redSqr(); + jyd8 = jyd8.redIAdd(jyd8); + jyd8 = jyd8.redIAdd(jyd8); + jyd8 = jyd8.redIAdd(jyd8); + var ny = c.redMul(t2).redISub(jyd8); + var nz = jy.redAdd(jy).redMul(jz); + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype.trpl = function trpl() { + if (!this.curve.zeroA) return this.dbl().add(this); // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl + // 5M + 10S + ... + // XX = X1^2 + + var xx = this.x.redSqr(); // YY = Y1^2 + + var yy = this.y.redSqr(); // ZZ = Z1^2 + + var zz = this.z.redSqr(); // YYYY = YY^2 + + var yyyy = yy.redSqr(); // M = 3 * XX + a * ZZ2; a = 0 + + var m = xx.redAdd(xx).redIAdd(xx); // MM = M^2 + + var mm = m.redSqr(); // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM + + var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy); + e = e.redIAdd(e); + e = e.redAdd(e).redIAdd(e); + e = e.redISub(mm); // EE = E^2 + + var ee = e.redSqr(); // T = 16*YYYY + + var t = yyyy.redIAdd(yyyy); + t = t.redIAdd(t); + t = t.redIAdd(t); + t = t.redIAdd(t); // U = (M + E)^2 - MM - EE - T + + var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t); // X3 = 4 * (X1 * EE - 4 * YY * U) + + var yyu4 = yy.redMul(u); + yyu4 = yyu4.redIAdd(yyu4); + yyu4 = yyu4.redIAdd(yyu4); + var nx = this.x.redMul(ee).redISub(yyu4); + nx = nx.redIAdd(nx); + nx = nx.redIAdd(nx); // Y3 = 8 * Y1 * (U * (T - U) - E * EE) + + var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee))); + ny = ny.redIAdd(ny); + ny = ny.redIAdd(ny); + ny = ny.redIAdd(ny); // Z3 = (Z1 + E)^2 - ZZ - EE + + var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee); + return this.curve.jpoint(nx, ny, nz); +}; + +JPoint.prototype.mul = function mul(k, kbase) { + k = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(k, kbase); + return this.curve._wnafMul(this, k); +}; + +JPoint.prototype.eq = function eq(p) { + if (p.type === 'affine') return this.eq(p.toJ()); + if (this === p) return true; // x1 * z2^2 == x2 * z1^2 + + var z2 = this.z.redSqr(); + var pz2 = p.z.redSqr(); + if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0) return false; // y1 * z2^3 == y2 * z1^3 + + var z3 = z2.redMul(this.z); + var pz3 = pz2.redMul(p.z); + return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0; +}; + +JPoint.prototype.eqXToP = function eqXToP(x) { + var zs = this.z.redSqr(); + var rx = x.toRed(this.curve.red).redMul(zs); + if (this.x.cmp(rx) === 0) return true; + var xc = x.clone(); + var t = this.curve.redN.redMul(zs); + + for (;;) { + xc.iadd(this.curve.n); + if (xc.cmp(this.curve.p) >= 0) return false; + rx.redIAdd(t); + if (this.x.cmp(rx) === 0) return true; + } +}; + +JPoint.prototype.inspect = function inspect() { + if (this.isInfinity()) return ''; + return ''; +}; + +JPoint.prototype.isInfinity = function isInfinity() { + // XXX This code assumes that zero is always zero in red + return this.z.cmpn(0) === 0; +}; + +var curve_1 = createCommonjsModule(function (module, exports) { + 'use strict'; + + var curve = exports; + curve.base = base; + curve["short"] = short_1; + curve.mont = + /*RicMoo:ethers:require(./mont)*/ + null; + curve.edwards = + /*RicMoo:ethers:require(./edwards)*/ + null; +}); +var curves_1 = createCommonjsModule(function (module, exports) { + 'use strict'; + + var curves = exports; + var assert = utils_1$1.assert; + + function PresetCurve(options) { + if (options.type === 'short') this.curve = new curve_1["short"](options);else if (options.type === 'edwards') this.curve = new curve_1.edwards(options);else this.curve = new curve_1.mont(options); + this.g = this.curve.g; + this.n = this.curve.n; + this.hash = options.hash; + assert(this.g.validate(), 'Invalid curve'); + assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O'); + } + + curves.PresetCurve = PresetCurve; + + function defineCurve(name, options) { + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + get: function get() { + var curve = new PresetCurve(options); + Object.defineProperty(curves, name, { + configurable: true, + enumerable: true, + value: curve + }); + return curve; + } + }); + } + + defineCurve('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_js__WEBPACK_IMPORTED_MODULE_1___default.a.sha256, + gRed: false, + g: ['188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012', '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811'] + }); + defineCurve('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_js__WEBPACK_IMPORTED_MODULE_1___default.a.sha256, + gRed: false, + g: ['b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21', 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34'] + }); + defineCurve('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_js__WEBPACK_IMPORTED_MODULE_1___default.a.sha256, + gRed: false, + g: ['6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296', '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5'] + }); + defineCurve('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_js__WEBPACK_IMPORTED_MODULE_1___default.a.sha384, + gRed: false, + 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'] + }); + defineCurve('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_js__WEBPACK_IMPORTED_MODULE_1___default.a.sha512, + gRed: false, + 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'] + }); + defineCurve('curve25519', { + type: 'mont', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '76d06', + b: '1', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: hash_js__WEBPACK_IMPORTED_MODULE_1___default.a.sha256, + gRed: false, + g: ['9'] + }); + defineCurve('ed25519', { + type: 'edwards', + prime: 'p25519', + p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed', + a: '-1', + c: '1', + // -121665 * (121666^(-1)) (mod P) + d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3', + n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed', + hash: hash_js__WEBPACK_IMPORTED_MODULE_1___default.a.sha256, + gRed: false, + g: ['216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a', // 4/5 + '6666666666666666666666666666666666666666666666666666666666666658'] + }); + var pre; + + try { + pre = + /*RicMoo:ethers:require(./precomputed/secp256k1)*/ + null.crash(); + } catch (e) { + pre = undefined; + } + + defineCurve('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_js__WEBPACK_IMPORTED_MODULE_1___default.a.sha256, + // Precomputed endomorphism + beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee', + lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72', + basis: [{ + a: '3086d221a7d46bcde86c90e49284eb15', + b: '-e4437ed6010e88286f547fa90abfe4c3' + }, { + a: '114ca50f7a8e2f3f657c1108d9d44cfd8', + b: '3086d221a7d46bcde86c90e49284eb15' + }], + gRed: false, + g: ['79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798', '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8', pre] + }); +}); +'use strict'; + +function HmacDRBG(options) { + if (!(this instanceof HmacDRBG)) return new HmacDRBG(options); + this.hash = options.hash; + this.predResist = !!options.predResist; + this.outLen = this.hash.outSize; + this.minEntropy = options.minEntropy || this.hash.hmacStrength; + this._reseed = null; + this.reseedInterval = null; + this.K = null; + this.V = null; + var entropy = utils_1.toArray(options.entropy, options.entropyEnc || 'hex'); + var nonce = utils_1.toArray(options.nonce, options.nonceEnc || 'hex'); + var pers = utils_1.toArray(options.pers, options.persEnc || 'hex'); + minimalisticAssert(entropy.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'); + + this._init(entropy, nonce, pers); +} + +var hmacDrbg = HmacDRBG; + +HmacDRBG.prototype._init = function init(entropy, nonce, pers) { + var seed = entropy.concat(nonce).concat(pers); + this.K = new Array(this.outLen / 8); + this.V = new Array(this.outLen / 8); + + for (var i = 0; i < this.V.length; i++) { + this.K[i] = 0x00; + this.V[i] = 0x01; + } + + this._update(seed); + + this._reseed = 1; + this.reseedInterval = 0x1000000000000; // 2^48 +}; + +HmacDRBG.prototype._hmac = function hmac() { + return new hash_js__WEBPACK_IMPORTED_MODULE_1___default.a.hmac(this.hash, this.K); +}; + +HmacDRBG.prototype._update = function update(seed) { + var kmac = this._hmac().update(this.V).update([0x00]); + + if (seed) kmac = kmac.update(seed); + this.K = kmac.digest(); + this.V = this._hmac().update(this.V).digest(); + if (!seed) return; + this.K = this._hmac().update(this.V).update([0x01]).update(seed).digest(); + this.V = this._hmac().update(this.V).digest(); +}; + +HmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) { + // Optional entropy enc + if (typeof entropyEnc !== 'string') { + addEnc = add; + add = entropyEnc; + entropyEnc = null; + } + + entropy = utils_1.toArray(entropy, entropyEnc); + add = utils_1.toArray(add, addEnc); + minimalisticAssert(entropy.length >= this.minEntropy / 8, 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits'); + + this._update(entropy.concat(add || [])); + + this._reseed = 1; +}; + +HmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) { + if (this._reseed > this.reseedInterval) throw new Error('Reseed is required'); // Optional encoding + + if (typeof enc !== 'string') { + addEnc = add; + add = enc; + enc = null; + } // Optional additional data + + + if (add) { + add = utils_1.toArray(add, addEnc || 'hex'); + + this._update(add); + } + + var temp = []; + + while (temp.length < len) { + this.V = this._hmac().update(this.V).digest(); + temp = temp.concat(this.V); + } + + var res = temp.slice(0, len); + + this._update(add); + + this._reseed++; + return utils_1.encode(res, enc); +}; + +'use strict'; + +var assert$3 = utils_1$1.assert; + +function KeyPair(ec, options) { + this.ec = ec; + this.priv = null; + this.pub = null; // KeyPair(ec, { priv: ..., pub: ... }) + + if (options.priv) this._importPrivate(options.priv, options.privEnc); + if (options.pub) this._importPublic(options.pub, options.pubEnc); +} + +var key = KeyPair; + +KeyPair.fromPublic = function fromPublic(ec, pub, enc) { + if (pub instanceof KeyPair) return pub; + return new KeyPair(ec, { + pub: pub, + pubEnc: enc + }); +}; + +KeyPair.fromPrivate = function fromPrivate(ec, priv, enc) { + if (priv instanceof KeyPair) return priv; + return new KeyPair(ec, { + priv: priv, + privEnc: enc + }); +}; + +KeyPair.prototype.validate = function validate() { + var pub = this.getPublic(); + if (pub.isInfinity()) return { + result: false, + reason: 'Invalid public key' + }; + if (!pub.validate()) return { + result: false, + reason: 'Public key is not a point' + }; + if (!pub.mul(this.ec.curve.n).isInfinity()) return { + result: false, + reason: 'Public key * N != O' + }; + return { + result: true, + reason: null + }; +}; + +KeyPair.prototype.getPublic = function getPublic(compact, enc) { + // compact is optional argument + if (typeof compact === 'string') { + enc = compact; + compact = null; + } + + if (!this.pub) this.pub = this.ec.g.mul(this.priv); + if (!enc) return this.pub; + return this.pub.encode(enc, compact); +}; + +KeyPair.prototype.getPrivate = function getPrivate(enc) { + if (enc === 'hex') return this.priv.toString(16, 2);else return this.priv; +}; + +KeyPair.prototype._importPrivate = function _importPrivate(key, enc) { + this.priv = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(key, enc || 16); // Ensure that the priv won't be bigger than n, otherwise we may fail + // in fixed multiplication method + + this.priv = this.priv.umod(this.ec.curve.n); +}; + +KeyPair.prototype._importPublic = function _importPublic(key, enc) { + if (key.x || key.y) { + // Montgomery points only have an `x` coordinate. + // Weierstrass/Edwards points on the other hand have both `x` and + // `y` coordinates. + if (this.ec.curve.type === 'mont') { + assert$3(key.x, 'Need x coordinate'); + } else if (this.ec.curve.type === 'short' || this.ec.curve.type === 'edwards') { + assert$3(key.x && key.y, 'Need both x and y coordinate'); + } + + this.pub = this.ec.curve.point(key.x, key.y); + return; + } + + this.pub = this.ec.curve.decodePoint(key, enc); +}; // ECDH + + +KeyPair.prototype.derive = function derive(pub) { + if (!pub.validate()) { + assert$3(pub.validate(), 'public point not validated'); + } + + return pub.mul(this.priv).getX(); +}; // ECDSA + + +KeyPair.prototype.sign = function sign(msg, enc, options) { + return this.ec.sign(msg, this, enc, options); +}; + +KeyPair.prototype.verify = function verify(msg, signature) { + return this.ec.verify(msg, signature, this); +}; + +KeyPair.prototype.inspect = function inspect() { + return ''; +}; + +'use strict'; + +var assert$4 = utils_1$1.assert; + +function Signature(options, enc) { + if (options instanceof Signature) return options; + if (this._importDER(options, enc)) return; + assert$4(options.r && options.s, 'Signature without r or s'); + this.r = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(options.r, 16); + this.s = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(options.s, 16); + if (options.recoveryParam === undefined) this.recoveryParam = null;else this.recoveryParam = options.recoveryParam; +} + +var signature = Signature; + +function Position() { + this.place = 0; +} + +function getLength(buf, p) { + var initial = buf[p.place++]; + + if (!(initial & 0x80)) { + return initial; + } + + var octetLen = initial & 0xf; // Indefinite length or overflow + + if (octetLen === 0 || octetLen > 4) { + return false; + } + + var val = 0; + + for (var i = 0, off = p.place; i < octetLen; i++, off++) { + val <<= 8; + val |= buf[off]; + val >>>= 0; + } // Leading zeroes + + + if (val <= 0x7f) { + return false; + } + + p.place = off; + return val; +} + +function rmPadding(buf) { + var i = 0; + var len = buf.length - 1; + + while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) { + i++; + } + + if (i === 0) { + return buf; + } + + return buf.slice(i); +} + +Signature.prototype._importDER = function _importDER(data, enc) { + data = utils_1$1.toArray(data, enc); + var p = new Position(); + + if (data[p.place++] !== 0x30) { + return false; + } + + var len = getLength(data, p); + + if (len === false) { + return false; + } + + if (len + p.place !== data.length) { + return false; + } + + if (data[p.place++] !== 0x02) { + return false; + } + + var rlen = getLength(data, p); + + if (rlen === false) { + return false; + } + + var r = data.slice(p.place, rlen + p.place); + p.place += rlen; + + if (data[p.place++] !== 0x02) { + return false; + } + + var slen = getLength(data, p); + + if (slen === false) { + return false; + } + + if (data.length !== slen + p.place) { + return false; + } + + var s = data.slice(p.place, slen + p.place); + + if (r[0] === 0) { + if (r[1] & 0x80) { + r = r.slice(1); + } else { + // Leading zeroes + return false; + } + } + + if (s[0] === 0) { + if (s[1] & 0x80) { + s = s.slice(1); + } else { + // Leading zeroes + return false; + } + } + + this.r = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(r); + this.s = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(s); + this.recoveryParam = null; + return true; +}; + +function constructLength(arr, len) { + if (len < 0x80) { + arr.push(len); + return; + } + + var octets = 1 + (Math.log(len) / Math.LN2 >>> 3); + arr.push(octets | 0x80); + + while (--octets) { + arr.push(len >>> (octets << 3) & 0xff); + } + + arr.push(len); +} + +Signature.prototype.toDER = function toDER(enc) { + var r = this.r.toArray(); + var s = this.s.toArray(); // Pad values + + if (r[0] & 0x80) r = [0].concat(r); // Pad values + + if (s[0] & 0x80) s = [0].concat(s); + r = rmPadding(r); + s = rmPadding(s); + + while (!s[0] && !(s[1] & 0x80)) { + s = s.slice(1); + } + + var arr = [0x02]; + constructLength(arr, r.length); + arr = arr.concat(r); + arr.push(0x02); + constructLength(arr, s.length); + var backHalf = arr.concat(s); + var res = [0x30]; + constructLength(res, backHalf.length); + res = res.concat(backHalf); + return utils_1$1.encode(res, enc); +}; + +'use strict'; + +var rand = +/*RicMoo:ethers:require(brorand)*/ +function rand() { + throw new Error('unsupported'); +}; + +var assert$5 = utils_1$1.assert; + +function EC(options) { + if (!(this instanceof EC)) return new EC(options); // Shortcut `elliptic.ec(curve-name)` + + if (typeof options === 'string') { + assert$5(Object.prototype.hasOwnProperty.call(curves_1, options), 'Unknown curve ' + options); + options = curves_1[options]; + } // Shortcut for `elliptic.ec(elliptic.curves.curveName)` + + + if (options instanceof curves_1.PresetCurve) options = { + curve: options + }; + this.curve = options.curve.curve; + this.n = this.curve.n; + this.nh = this.n.ushrn(1); + this.g = this.curve.g; // Point on curve + + this.g = options.curve.g; + this.g.precompute(options.curve.n.bitLength() + 1); // Hash for function for DRBG + + this.hash = options.hash || options.curve.hash; +} + +var ec = EC; + +EC.prototype.keyPair = function keyPair(options) { + return new key(this, options); +}; + +EC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) { + return key.fromPrivate(this, priv, enc); +}; + +EC.prototype.keyFromPublic = function keyFromPublic(pub, enc) { + return key.fromPublic(this, pub, enc); +}; + +EC.prototype.genKeyPair = function genKeyPair(options) { + if (!options) options = {}; // Instantiate Hmac_DRBG + + var drbg = new hmacDrbg({ + hash: this.hash, + pers: options.pers, + persEnc: options.persEnc || 'utf8', + entropy: options.entropy || rand(this.hash.hmacStrength), + entropyEnc: options.entropy && options.entropyEnc || 'utf8', + nonce: this.n.toArray() + }); + var bytes = this.n.byteLength(); + var ns2 = this.n.sub(new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(2)); + + for (;;) { + var priv = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(drbg.generate(bytes)); + if (priv.cmp(ns2) > 0) continue; + priv.iaddn(1); + return this.keyFromPrivate(priv); + } +}; + +EC.prototype._truncateToN = function _truncateToN(msg, truncOnly) { + var delta = msg.byteLength() * 8 - this.n.bitLength(); + if (delta > 0) msg = msg.ushrn(delta); + if (!truncOnly && msg.cmp(this.n) >= 0) return msg.sub(this.n);else return msg; +}; + +EC.prototype.sign = function sign(msg, key, enc, options) { + if (_typeof(enc) === 'object') { + options = enc; + enc = null; + } + + if (!options) options = {}; + key = this.keyFromPrivate(key, enc); + msg = this._truncateToN(new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(msg, 16)); // Zero-extend key to provide enough entropy + + var bytes = this.n.byteLength(); + var bkey = key.getPrivate().toArray('be', bytes); // Zero-extend nonce to have the same byte size as N + + var nonce = msg.toArray('be', bytes); // Instantiate Hmac_DRBG + + var drbg = new hmacDrbg({ + hash: this.hash, + entropy: bkey, + nonce: nonce, + pers: options.pers, + persEnc: options.persEnc || 'utf8' + }); // Number of bytes to generate + + var ns1 = this.n.sub(new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(1)); + + for (var iter = 0;; iter++) { + var k = options.k ? options.k(iter) : new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(drbg.generate(this.n.byteLength())); + k = this._truncateToN(k, true); + if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0) continue; + var kp = this.g.mul(k); + if (kp.isInfinity()) continue; + var kpX = kp.getX(); + var r = kpX.umod(this.n); + if (r.cmpn(0) === 0) continue; + var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg)); + s = s.umod(this.n); + if (s.cmpn(0) === 0) continue; + var recoveryParam = (kp.getY().isOdd() ? 1 : 0) | (kpX.cmp(r) !== 0 ? 2 : 0); // Use complement of `s`, if it is > `n / 2` + + if (options.canonical && s.cmp(this.nh) > 0) { + s = this.n.sub(s); + recoveryParam ^= 1; + } + + return new signature({ + r: r, + s: s, + recoveryParam: recoveryParam + }); + } +}; + +EC.prototype.verify = function verify(msg, signature$1, key, enc) { + msg = this._truncateToN(new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(msg, 16)); + key = this.keyFromPublic(key, enc); + signature$1 = new signature(signature$1, 'hex'); // Perform primitive values validation + + var r = signature$1.r; + var s = signature$1.s; + if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0) return false; + if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0) return false; // Validate signature + + var sinv = s.invm(this.n); + var u1 = sinv.mul(msg).umod(this.n); + var u2 = sinv.mul(r).umod(this.n); + var p; + + if (!this.curve._maxwellTrick) { + p = this.g.mulAdd(u1, key.getPublic(), u2); + if (p.isInfinity()) return false; + return p.getX().umod(this.n).cmp(r) === 0; + } // NOTE: Greg Maxwell's trick, inspired by: + // https://git.io/vad3K + + + p = this.g.jmulAdd(u1, key.getPublic(), u2); + if (p.isInfinity()) return false; // Compare `p.x` of Jacobian point with `r`, + // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the + // inverse of `p.z^2` + + return p.eqXToP(r); +}; + +EC.prototype.recoverPubKey = function (msg, signature$1, j, enc) { + assert$5((3 & j) === j, 'The recovery param is more than two bits'); + signature$1 = new signature(signature$1, enc); + var n = this.n; + var e = new bn_js__WEBPACK_IMPORTED_MODULE_0___default.a(msg); + var r = signature$1.r; + var s = signature$1.s; // A set LSB signifies that the y-coordinate is odd + + var isYOdd = j & 1; + var isSecondKey = j >> 1; + if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey) throw new Error('Unable to find sencond key candinate'); // 1.1. Let x = r + jn. + + if (isSecondKey) r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);else r = this.curve.pointFromX(r, isYOdd); + var rInv = signature$1.r.invm(n); + var s1 = n.sub(e).mul(rInv).umod(n); + var s2 = s.mul(rInv).umod(n); // 1.6.1 Compute Q = r^-1 (sR - eG) + // Q = r^-1 (sR + -eG) + + return this.g.mulAdd(s1, r, s2); +}; + +EC.prototype.getKeyRecoveryParam = function (e, signature$1, Q, enc) { + signature$1 = new signature(signature$1, enc); + if (signature$1.recoveryParam !== null) return signature$1.recoveryParam; + + for (var i = 0; i < 4; i++) { + var Qprime; + + try { + Qprime = this.recoverPubKey(e, signature$1, i); + } catch (e) { + continue; + } + + if (Qprime.eq(Q)) return i; + } + + throw new Error('Unable to find valid recovery factor'); +}; + +var elliptic_1 = createCommonjsModule(function (module, exports) { + 'use strict'; + + var elliptic = exports; + elliptic.version = + /*RicMoo:ethers*/ + { + version: "6.5.4" + }.version; + elliptic.utils = utils_1$1; + + elliptic.rand = + /*RicMoo:ethers:require(brorand)*/ + function () { + throw new Error('unsupported'); + }; + + elliptic.curve = curve_1; + elliptic.curves = curves_1; // Protocols + + elliptic.ec = ec; + elliptic.eddsa = + /*RicMoo:ethers:require(./elliptic/eddsa)*/ + null; +}); +var EC$1 = elliptic_1.ec; + +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../../../../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/signing-key/lib.esm/index.js": +/*!********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/signing-key/lib.esm/index.js ***! + \********************************************************************************************************/ +/*! exports provided: SigningKey, recoverPublicKey, computePublicKey */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SigningKey", function() { return SigningKey; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recoverPublicKey", function() { return recoverPublicKey; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computePublicKey", function() { return computePublicKey; }); +/* harmony import */ var _elliptic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./elliptic */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/signing-key/lib.esm/elliptic.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/signing-key/lib.esm/_version.js"); + + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__["Logger"](_version__WEBPACK_IMPORTED_MODULE_4__["version"]); +var _curve = null; + +function getCurve() { + if (!_curve) { + _curve = new _elliptic__WEBPACK_IMPORTED_MODULE_0__["EC"]("secp256k1"); + } + + return _curve; +} + +var SigningKey = /*#__PURE__*/function () { + function SigningKey(privateKey) { + _classCallCheck(this, SigningKey); + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["defineReadOnly"])(this, "curve", "secp256k1"); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["defineReadOnly"])(this, "privateKey", Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["hexlify"])(privateKey)); + var keyPair = getCurve().keyFromPrivate(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(this.privateKey)); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["defineReadOnly"])(this, "publicKey", "0x" + keyPair.getPublic(false, "hex")); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["defineReadOnly"])(this, "compressedPublicKey", "0x" + keyPair.getPublic(true, "hex")); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["defineReadOnly"])(this, "_isSigningKey", true); + } + + _createClass(SigningKey, [{ + key: "_addPoint", + value: function _addPoint(other) { + var p0 = getCurve().keyFromPublic(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(this.publicKey)); + var p1 = getCurve().keyFromPublic(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(other)); + return "0x" + p0.pub.add(p1.pub).encodeCompressed("hex"); + } + }, { + key: "signDigest", + value: function signDigest(digest) { + var keyPair = getCurve().keyFromPrivate(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(this.privateKey)); + var digestBytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(digest); + + if (digestBytes.length !== 32) { + logger.throwArgumentError("bad digest length", "digest", digest); + } + + var signature = keyPair.sign(digestBytes, { + canonical: true + }); + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["splitSignature"])({ + recoveryParam: signature.recoveryParam, + r: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["hexZeroPad"])("0x" + signature.r.toString(16), 32), + s: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["hexZeroPad"])("0x" + signature.s.toString(16), 32) + }); + } + }, { + key: "computeSharedSecret", + value: function computeSharedSecret(otherKey) { + var keyPair = getCurve().keyFromPrivate(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(this.privateKey)); + var otherKeyPair = getCurve().keyFromPublic(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(computePublicKey(otherKey))); + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["hexZeroPad"])("0x" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32); + } + }], [{ + key: "isSigningKey", + value: function isSigningKey(value) { + return !!(value && value._isSigningKey); + } + }]); + + return SigningKey; +}(); +function recoverPublicKey(digest, signature) { + var sig = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["splitSignature"])(signature); + var rs = { + r: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(sig.r), + s: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(sig.s) + }; + return "0x" + getCurve().recoverPubKey(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(digest), rs, sig.recoveryParam).encode("hex", false); +} +function computePublicKey(key, compressed) { + var bytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(key); + + if (bytes.length === 32) { + var signingKey = new SigningKey(bytes); + + if (compressed) { + return "0x" + getCurve().keyFromPrivate(bytes).getPublic(true, "hex"); + } + + return signingKey.publicKey; + } else if (bytes.length === 33) { + if (compressed) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["hexlify"])(bytes); + } + + return "0x" + getCurve().keyFromPublic(bytes).getPublic(false, "hex"); + } else if (bytes.length === 65) { + if (!compressed) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["hexlify"])(bytes); + } + + return "0x" + getCurve().keyFromPublic(bytes).getPublic(true, "hex"); + } + + return logger.throwArgumentError("invalid public or private key", "key", "[REDACTED]"); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/_version.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/_version.js ***! + \*******************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "strings/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/bytes32.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/bytes32.js ***! + \******************************************************************************************************/ +/*! exports provided: formatBytes32String, parseBytes32String */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatBytes32String", function() { return formatBytes32String; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseBytes32String", function() { return parseBytes32String; }); +/* harmony import */ var _ethersproject_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/constants */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _utf8__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utf8 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/utf8.js"); + + + + + +function formatBytes32String(text) { + // Get the bytes + var bytes = Object(_utf8__WEBPACK_IMPORTED_MODULE_2__["toUtf8Bytes"])(text); // Check we have room for null-termination + + if (bytes.length > 31) { + throw new Error("bytes32 string must be less than 32 bytes"); + } // Zero-pad (implicitly null-terminates) + + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["hexlify"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["concat"])([bytes, _ethersproject_constants__WEBPACK_IMPORTED_MODULE_0__["HashZero"]]).slice(0, 32)); +} +function parseBytes32String(bytes) { + var data = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["arrayify"])(bytes); // Must be 32 bytes with a null-termination + + if (data.length !== 32) { + throw new Error("invalid bytes32 - not 32 bytes long"); + } + + if (data[31] !== 0) { + throw new Error("invalid bytes32 string - no null terminator"); + } // Find the null termination + + + var length = 31; + + while (data[length - 1] === 0) { + length--; + } // Determine the string value + + + return Object(_utf8__WEBPACK_IMPORTED_MODULE_2__["toUtf8String"])(data.slice(0, length)); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/idna.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/idna.js ***! + \***************************************************************************************************/ +/*! exports provided: _nameprepTableA1, _nameprepTableB2, _nameprepTableC, nameprep */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_nameprepTableA1", function() { return _nameprepTableA1; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_nameprepTableB2", function() { return _nameprepTableB2; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_nameprepTableC", function() { return _nameprepTableC; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "nameprep", function() { return nameprep; }); +/* harmony import */ var _utf8__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utf8 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/utf8.js"); + + + + +function bytes2(data) { + if (data.length % 4 !== 0) { + throw new Error("bad data"); + } + + var result = []; + + for (var i = 0; i < data.length; i += 4) { + result.push(parseInt(data.substring(i, i + 4), 16)); + } + + return result; +} + +function createTable(data, func) { + if (!func) { + func = function func(value) { + return [parseInt(value, 16)]; + }; + } + + var lo = 0; + var result = {}; + data.split(",").forEach(function (pair) { + var comps = pair.split(":"); + lo += parseInt(comps[0], 16); + result[lo] = func(comps[1]); + }); + return result; +} + +function createRangeTable(data) { + var hi = 0; + return data.split(",").map(function (v) { + var comps = v.split("-"); + + if (comps.length === 1) { + comps[1] = "0"; + } else if (comps[1] === "") { + comps[1] = "1"; + } + + var lo = hi + parseInt(comps[0], 16); + hi = parseInt(comps[1], 16); + return { + l: lo, + h: hi + }; + }); +} + +function matchMap(value, ranges) { + var lo = 0; + + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + lo += range.l; + + if (value >= lo && value <= lo + range.h && (value - lo) % (range.d || 1) === 0) { + if (range.e && range.e.indexOf(value - lo) !== -1) { + continue; + } + + return range; + } + } + + return null; +} + +var Table_A_1_ranges = createRangeTable("221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d"); // @TODO: Make this relative... + +var Table_B_1_flags = "ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff".split(",").map(function (v) { + return parseInt(v, 16); +}); +var Table_B_2_ranges = [{ + h: 25, + s: 32, + l: 65 +}, { + h: 30, + s: 32, + e: [23], + l: 127 +}, { + h: 54, + s: 1, + e: [48], + l: 64, + d: 2 +}, { + h: 14, + s: 1, + l: 57, + d: 2 +}, { + h: 44, + s: 1, + l: 17, + d: 2 +}, { + h: 10, + s: 1, + e: [2, 6, 8], + l: 61, + d: 2 +}, { + h: 16, + s: 1, + l: 68, + d: 2 +}, { + h: 84, + s: 1, + e: [18, 24, 66], + l: 19, + d: 2 +}, { + h: 26, + s: 32, + e: [17], + l: 435 +}, { + h: 22, + s: 1, + l: 71, + d: 2 +}, { + h: 15, + s: 80, + l: 40 +}, { + h: 31, + s: 32, + l: 16 +}, { + h: 32, + s: 1, + l: 80, + d: 2 +}, { + h: 52, + s: 1, + l: 42, + d: 2 +}, { + h: 12, + s: 1, + l: 55, + d: 2 +}, { + h: 40, + s: 1, + e: [38], + l: 15, + d: 2 +}, { + h: 14, + s: 1, + l: 48, + d: 2 +}, { + h: 37, + s: 48, + l: 49 +}, { + h: 148, + s: 1, + l: 6351, + d: 2 +}, { + h: 88, + s: 1, + l: 160, + d: 2 +}, { + h: 15, + s: 16, + l: 704 +}, { + h: 25, + s: 26, + l: 854 +}, { + h: 25, + s: 32, + l: 55915 +}, { + h: 37, + s: 40, + l: 1247 +}, { + h: 25, + s: -119711, + l: 53248 +}, { + h: 25, + s: -119763, + l: 52 +}, { + h: 25, + s: -119815, + l: 52 +}, { + h: 25, + s: -119867, + e: [1, 4, 5, 7, 8, 11, 12, 17], + l: 52 +}, { + h: 25, + s: -119919, + l: 52 +}, { + h: 24, + s: -119971, + e: [2, 7, 8, 17], + l: 52 +}, { + h: 24, + s: -120023, + e: [2, 7, 13, 15, 16, 17], + l: 52 +}, { + h: 25, + s: -120075, + l: 52 +}, { + h: 25, + s: -120127, + l: 52 +}, { + h: 25, + s: -120179, + l: 52 +}, { + h: 25, + s: -120231, + l: 52 +}, { + h: 25, + s: -120283, + l: 52 +}, { + h: 25, + s: -120335, + l: 52 +}, { + h: 24, + s: -119543, + e: [17], + l: 56 +}, { + h: 24, + s: -119601, + e: [17], + l: 58 +}, { + h: 24, + s: -119659, + e: [17], + l: 58 +}, { + h: 24, + s: -119717, + e: [17], + l: 58 +}, { + h: 24, + s: -119775, + e: [17], + l: 58 +}]; +var Table_B_2_lut_abs = createTable("b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3"); +var Table_B_2_lut_rel = createTable("179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7"); +var Table_B_2_complex = createTable("df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D", bytes2); +var Table_C_ranges = createRangeTable("80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001"); + +function flatten(values) { + return values.reduce(function (accum, value) { + value.forEach(function (value) { + accum.push(value); + }); + return accum; + }, []); +} + +function _nameprepTableA1(codepoint) { + return !!matchMap(codepoint, Table_A_1_ranges); +} +function _nameprepTableB2(codepoint) { + var range = matchMap(codepoint, Table_B_2_ranges); + + if (range) { + return [codepoint + range.s]; + } + + var codes = Table_B_2_lut_abs[codepoint]; + + if (codes) { + return codes; + } + + var shift = Table_B_2_lut_rel[codepoint]; + + if (shift) { + return [codepoint + shift[0]]; + } + + var complex = Table_B_2_complex[codepoint]; + + if (complex) { + return complex; + } + + return null; +} +function _nameprepTableC(codepoint) { + return !!matchMap(codepoint, Table_C_ranges); +} +function nameprep(value) { + // This allows platforms with incomplete normalize to bypass + // it for very basic names which the built-in toLowerCase + // will certainly handle correctly + if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) { + return value.toLowerCase(); + } // Get the code points (keeping the current normalization) + + + var codes = Object(_utf8__WEBPACK_IMPORTED_MODULE_0__["toUtf8CodePoints"])(value); + codes = flatten(codes.map(function (code) { + // Substitute Table B.1 (Maps to Nothing) + if (Table_B_1_flags.indexOf(code) >= 0) { + return []; + } + + if (code >= 0xfe00 && code <= 0xfe0f) { + return []; + } // Substitute Table B.2 (Case Folding) + + + var codesTableB2 = _nameprepTableB2(code); + + if (codesTableB2) { + return codesTableB2; + } // No Substitution + + + return [code]; + })); // Normalize using form KC + + codes = Object(_utf8__WEBPACK_IMPORTED_MODULE_0__["toUtf8CodePoints"])(Object(_utf8__WEBPACK_IMPORTED_MODULE_0__["_toUtf8String"])(codes), _utf8__WEBPACK_IMPORTED_MODULE_0__["UnicodeNormalizationForm"].NFKC); // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9 + + codes.forEach(function (code) { + if (_nameprepTableC(code)) { + throw new Error("STRINGPREP_CONTAINS_PROHIBITED"); + } + }); // Prohibit Unassigned Code Points (Table A.1) + + codes.forEach(function (code) { + if (_nameprepTableA1(code)) { + throw new Error("STRINGPREP_CONTAINS_UNASSIGNED"); + } + }); // IDNA extras + + var name = Object(_utf8__WEBPACK_IMPORTED_MODULE_0__["_toUtf8String"])(codes); // IDNA: 4.2.3.1 + + + if (name.substring(0, 1) === "-" || name.substring(2, 4) === "--" || name.substring(name.length - 1) === "-") { + throw new Error("invalid hyphen"); + } // IDNA: 4.2.4 + + + if (name.length > 63) { + throw new Error("too long"); + } + + return name; +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/index.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/index.js ***! + \****************************************************************************************************/ +/*! exports provided: _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs, Utf8ErrorReason, UnicodeNormalizationForm, formatBytes32String, parseBytes32String, nameprep */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _bytes32__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./bytes32 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/bytes32.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatBytes32String", function() { return _bytes32__WEBPACK_IMPORTED_MODULE_0__["formatBytes32String"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "parseBytes32String", function() { return _bytes32__WEBPACK_IMPORTED_MODULE_0__["parseBytes32String"]; }); + +/* harmony import */ var _idna__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./idna */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/idna.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "nameprep", function() { return _idna__WEBPACK_IMPORTED_MODULE_1__["nameprep"]; }); + +/* harmony import */ var _utf8__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utf8 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/utf8.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "_toEscapedUtf8String", function() { return _utf8__WEBPACK_IMPORTED_MODULE_2__["_toEscapedUtf8String"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toUtf8Bytes", function() { return _utf8__WEBPACK_IMPORTED_MODULE_2__["toUtf8Bytes"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toUtf8CodePoints", function() { return _utf8__WEBPACK_IMPORTED_MODULE_2__["toUtf8CodePoints"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toUtf8String", function() { return _utf8__WEBPACK_IMPORTED_MODULE_2__["toUtf8String"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Utf8ErrorFuncs", function() { return _utf8__WEBPACK_IMPORTED_MODULE_2__["Utf8ErrorFuncs"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Utf8ErrorReason", function() { return _utf8__WEBPACK_IMPORTED_MODULE_2__["Utf8ErrorReason"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnicodeNormalizationForm", function() { return _utf8__WEBPACK_IMPORTED_MODULE_2__["UnicodeNormalizationForm"]; }); + + + + + + + + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/utf8.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/utf8.js ***! + \***************************************************************************************************/ +/*! exports provided: UnicodeNormalizationForm, Utf8ErrorReason, Utf8ErrorFuncs, toUtf8Bytes, _toEscapedUtf8String, _toUtf8String, toUtf8String, toUtf8CodePoints */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UnicodeNormalizationForm", function() { return UnicodeNormalizationForm; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Utf8ErrorReason", function() { return Utf8ErrorReason; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Utf8ErrorFuncs", function() { return Utf8ErrorFuncs; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toUtf8Bytes", function() { return toUtf8Bytes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_toEscapedUtf8String", function() { return _toEscapedUtf8String; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_toUtf8String", function() { return _toUtf8String; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toUtf8String", function() { return toUtf8String; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toUtf8CodePoints", function() { return toUtf8CodePoints; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/_version.js"); + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); /////////////////////////////// + +var UnicodeNormalizationForm; + +(function (UnicodeNormalizationForm) { + UnicodeNormalizationForm["current"] = ""; + UnicodeNormalizationForm["NFC"] = "NFC"; + UnicodeNormalizationForm["NFD"] = "NFD"; + UnicodeNormalizationForm["NFKC"] = "NFKC"; + UnicodeNormalizationForm["NFKD"] = "NFKD"; +})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {})); + +; +var Utf8ErrorReason; + +(function (Utf8ErrorReason) { + // A continuation byte was present where there was nothing to continue + // - offset = the index the codepoint began in + Utf8ErrorReason["UNEXPECTED_CONTINUE"] = "unexpected continuation byte"; // An invalid (non-continuation) byte to start a UTF-8 codepoint was found + // - offset = the index the codepoint began in + + Utf8ErrorReason["BAD_PREFIX"] = "bad codepoint prefix"; // The string is too short to process the expected codepoint + // - offset = the index the codepoint began in + + Utf8ErrorReason["OVERRUN"] = "string overrun"; // A missing continuation byte was expected but not found + // - offset = the index the continuation byte was expected at + + Utf8ErrorReason["MISSING_CONTINUE"] = "missing continuation byte"; // The computed code point is outside the range for UTF-8 + // - offset = start of this codepoint + // - badCodepoint = the computed codepoint; outside the UTF-8 range + + Utf8ErrorReason["OUT_OF_RANGE"] = "out of UTF-8 range"; // UTF-8 strings may not contain UTF-16 surrogate pairs + // - offset = start of this codepoint + // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range + + Utf8ErrorReason["UTF16_SURROGATE"] = "UTF-16 surrogate"; // The string is an overlong representation + // - offset = start of this codepoint + // - badCodepoint = the computed codepoint; already bounds checked + + Utf8ErrorReason["OVERLONG"] = "overlong representation"; +})(Utf8ErrorReason || (Utf8ErrorReason = {})); + +; + +function errorFunc(reason, offset, bytes, output, badCodepoint) { + return logger.throwArgumentError("invalid codepoint at offset ".concat(offset, "; ").concat(reason), "bytes", bytes); +} + +function ignoreFunc(reason, offset, bytes, output, badCodepoint) { + // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes + if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) { + var i = 0; + + for (var o = offset + 1; o < bytes.length; o++) { + if (bytes[o] >> 6 !== 0x02) { + break; + } + + i++; + } + + return i; + } // This byte runs us past the end of the string, so just jump to the end + // (but the first byte was read already read and therefore skipped) + + + if (reason === Utf8ErrorReason.OVERRUN) { + return bytes.length - offset - 1; + } // Nothing to skip + + + return 0; +} + +function replaceFunc(reason, offset, bytes, output, badCodepoint) { + // Overlong representations are otherwise "valid" code points; just non-deistingtished + if (reason === Utf8ErrorReason.OVERLONG) { + output.push(badCodepoint); + return 0; + } // Put the replacement character into the output + + + output.push(0xfffd); // Otherwise, process as if ignoring errors + + return ignoreFunc(reason, offset, bytes, output, badCodepoint); +} // Common error handing strategies + + +var Utf8ErrorFuncs = Object.freeze({ + error: errorFunc, + ignore: ignoreFunc, + replace: replaceFunc +}); // http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499 + +function getUtf8CodePoints(bytes, onError) { + if (onError == null) { + onError = Utf8ErrorFuncs.error; + } + + bytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(bytes); + var result = []; + var i = 0; // Invalid bytes are ignored + + while (i < bytes.length) { + var c = bytes[i++]; // 0xxx xxxx + + if (c >> 7 === 0) { + result.push(c); + continue; + } // Multibyte; how many bytes left for this character? + + + var extraLength = null; + var overlongMask = null; // 110x xxxx 10xx xxxx + + if ((c & 0xe0) === 0xc0) { + extraLength = 1; + overlongMask = 0x7f; // 1110 xxxx 10xx xxxx 10xx xxxx + } else if ((c & 0xf0) === 0xe0) { + extraLength = 2; + overlongMask = 0x7ff; // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx + } else if ((c & 0xf8) === 0xf0) { + extraLength = 3; + overlongMask = 0xffff; + } else { + if ((c & 0xc0) === 0x80) { + i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result); + } else { + i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result); + } + + continue; + } // Do we have enough bytes in our data? + + + if (i - 1 + extraLength >= bytes.length) { + i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result); + continue; + } // Remove the length prefix from the char + + + var res = c & (1 << 8 - extraLength - 1) - 1; + + for (var j = 0; j < extraLength; j++) { + var nextChar = bytes[i]; // Invalid continuation byte + + if ((nextChar & 0xc0) != 0x80) { + i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result); + res = null; + break; + } + + ; + res = res << 6 | nextChar & 0x3f; + i++; + } // See above loop for invalid continuation byte + + + if (res === null) { + continue; + } // Maximum code point + + + if (res > 0x10ffff) { + i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res); + continue; + } // Reserved for UTF-16 surrogate halves + + + if (res >= 0xd800 && res <= 0xdfff) { + i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res); + continue; + } // Check for overlong sequences (more bytes than needed) + + + if (res <= overlongMask) { + i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res); + continue; + } + + result.push(res); + } + + return result; +} // http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array + + +function toUtf8Bytes(str) { + var form = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : UnicodeNormalizationForm.current; + + if (form != UnicodeNormalizationForm.current) { + logger.checkNormalize(); + str = str.normalize(form); + } + + var result = []; + + for (var i = 0; i < str.length; i++) { + var c = str.charCodeAt(i); + + if (c < 0x80) { + result.push(c); + } else if (c < 0x800) { + result.push(c >> 6 | 0xc0); + result.push(c & 0x3f | 0x80); + } else if ((c & 0xfc00) == 0xd800) { + i++; + var c2 = str.charCodeAt(i); + + if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) { + throw new Error("invalid utf-8 string"); + } // Surrogate Pair + + + var pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff); + result.push(pair >> 18 | 0xf0); + result.push(pair >> 12 & 0x3f | 0x80); + result.push(pair >> 6 & 0x3f | 0x80); + result.push(pair & 0x3f | 0x80); + } else { + result.push(c >> 12 | 0xe0); + result.push(c >> 6 & 0x3f | 0x80); + result.push(c & 0x3f | 0x80); + } + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(result); +} +; + +function escapeChar(value) { + var hex = "0000" + value.toString(16); + return "\\u" + hex.substring(hex.length - 4); +} + +function _toEscapedUtf8String(bytes, onError) { + return '"' + getUtf8CodePoints(bytes, onError).map(function (codePoint) { + if (codePoint < 256) { + switch (codePoint) { + case 8: + return "\\b"; + + case 9: + return "\\t"; + + case 10: + return "\\n"; + + case 13: + return "\\r"; + + case 34: + return "\\\""; + + case 92: + return "\\\\"; + } + + if (codePoint >= 32 && codePoint < 127) { + return String.fromCharCode(codePoint); + } + } + + if (codePoint <= 0xffff) { + return escapeChar(codePoint); + } + + codePoint -= 0x10000; + return escapeChar((codePoint >> 10 & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00); + }).join("") + '"'; +} +function _toUtf8String(codePoints) { + return codePoints.map(function (codePoint) { + if (codePoint <= 0xffff) { + return String.fromCharCode(codePoint); + } + + codePoint -= 0x10000; + return String.fromCharCode((codePoint >> 10 & 0x3ff) + 0xd800, (codePoint & 0x3ff) + 0xdc00); + }).join(""); +} +function toUtf8String(bytes, onError) { + return _toUtf8String(getUtf8CodePoints(bytes, onError)); +} +function toUtf8CodePoints(str) { + var form = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : UnicodeNormalizationForm.current; + return getUtf8CodePoints(toUtf8Bytes(str, form)); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/transactions/lib.esm/_version.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/transactions/lib.esm/_version.js ***! + \************************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "transactions/5.5.0"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/transactions/lib.esm/index.js": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/transactions/lib.esm/index.js ***! + \*********************************************************************************************************/ +/*! exports provided: TransactionTypes, computeAddress, recoverAddress, accessListify, serialize, parse */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TransactionTypes", function() { return TransactionTypes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "computeAddress", function() { return computeAddress; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "recoverAddress", function() { return recoverAddress; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "accessListify", function() { return accessListify; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "serialize", function() { return serialize; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parse", function() { return parse; }); +/* harmony import */ var _ethersproject_address__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/address */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/address/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/constants */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/constants/lib.esm/index.js"); +/* harmony import */ var _ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/keccak256 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/keccak256/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_rlp__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/rlp */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/rlp/lib.esm/index.js"); +/* harmony import */ var _ethersproject_signing_key__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ethersproject/signing-key */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/signing-key/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/transactions/lib.esm/_version.js"); + + + + + + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"](_version__WEBPACK_IMPORTED_MODULE_9__["version"]); +var TransactionTypes; + +(function (TransactionTypes) { + TransactionTypes[TransactionTypes["legacy"] = 0] = "legacy"; + TransactionTypes[TransactionTypes["eip2930"] = 1] = "eip2930"; + TransactionTypes[TransactionTypes["eip1559"] = 2] = "eip1559"; +})(TransactionTypes || (TransactionTypes = {})); + +; /////////////////////////////// + +function handleAddress(value) { + if (value === "0x") { + return null; + } + + return Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getAddress"])(value); +} + +function handleNumber(value) { + if (value === "0x") { + return _ethersproject_constants__WEBPACK_IMPORTED_MODULE_3__["Zero"]; + } + + return _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(value); +} // Legacy Transaction Fields + + +var transactionFields = [{ + name: "nonce", + maxLength: 32, + numeric: true +}, { + name: "gasPrice", + maxLength: 32, + numeric: true +}, { + name: "gasLimit", + maxLength: 32, + numeric: true +}, { + name: "to", + length: 20 +}, { + name: "value", + maxLength: 32, + numeric: true +}, { + name: "data" +}]; +var allowedTransactionKeys = { + chainId: true, + data: true, + gasLimit: true, + gasPrice: true, + nonce: true, + to: true, + type: true, + value: true +}; +function computeAddress(key) { + var publicKey = Object(_ethersproject_signing_key__WEBPACK_IMPORTED_MODULE_7__["computePublicKey"])(key); + return Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getAddress"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexDataSlice"])(Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_4__["keccak256"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexDataSlice"])(publicKey, 1)), 12)); +} +function recoverAddress(digest, signature) { + return computeAddress(Object(_ethersproject_signing_key__WEBPACK_IMPORTED_MODULE_7__["recoverPublicKey"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(digest), signature)); +} + +function formatNumber(value, name) { + var result = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["stripZeros"])(_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(value).toHexString()); + + if (result.length > 32) { + logger.throwArgumentError("invalid length for " + name, "transaction:" + name, value); + } + + return result; +} + +function accessSetify(addr, storageKeys) { + return { + address: Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getAddress"])(addr), + storageKeys: (storageKeys || []).map(function (storageKey, index) { + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexDataLength"])(storageKey) !== 32) { + logger.throwArgumentError("invalid access list storageKey", "accessList[".concat(addr, ":").concat(index, "]"), storageKey); + } + + return storageKey.toLowerCase(); + }) + }; +} + +function accessListify(value) { + if (Array.isArray(value)) { + return value.map(function (set, index) { + if (Array.isArray(set)) { + if (set.length > 2) { + logger.throwArgumentError("access list expected to be [ address, storageKeys[] ]", "value[".concat(index, "]"), set); + } + + return accessSetify(set[0], set[1]); + } + + return accessSetify(set.address, set.storageKeys); + }); + } + + var result = Object.keys(value).map(function (addr) { + var storageKeys = value[addr].reduce(function (accum, storageKey) { + accum[storageKey] = true; + return accum; + }, {}); + return accessSetify(addr, Object.keys(storageKeys).sort()); + }); + result.sort(function (a, b) { + return a.address.localeCompare(b.address); + }); + return result; +} + +function formatAccessList(value) { + return accessListify(value).map(function (set) { + return [set.address, set.storageKeys]; + }); +} + +function _serializeEip1559(transaction, signature) { + // If there is an explicit gasPrice, make sure it matches the + // EIP-1559 fees; otherwise they may not understand what they + // think they are setting in terms of fee. + if (transaction.gasPrice != null) { + var gasPrice = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(transaction.gasPrice); + var maxFeePerGas = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(transaction.maxFeePerGas || 0); + + if (!gasPrice.eq(maxFeePerGas)) { + logger.throwArgumentError("mismatch EIP-1559 gasPrice != maxFeePerGas", "tx", { + gasPrice: gasPrice, + maxFeePerGas: maxFeePerGas + }); + } + } + + var fields = [formatNumber(transaction.chainId || 0, "chainId"), formatNumber(transaction.nonce || 0, "nonce"), formatNumber(transaction.maxPriorityFeePerGas || 0, "maxPriorityFeePerGas"), formatNumber(transaction.maxFeePerGas || 0, "maxFeePerGas"), formatNumber(transaction.gasLimit || 0, "gasLimit"), transaction.to != null ? Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getAddress"])(transaction.to) : "0x", formatNumber(transaction.value || 0, "value"), transaction.data || "0x", formatAccessList(transaction.accessList || [])]; + + if (signature) { + var sig = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["splitSignature"])(signature); + fields.push(formatNumber(sig.recoveryParam, "recoveryParam")); + fields.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["stripZeros"])(sig.r)); + fields.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["stripZeros"])(sig.s)); + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexConcat"])(["0x02", _ethersproject_rlp__WEBPACK_IMPORTED_MODULE_6__["encode"](fields)]); +} + +function _serializeEip2930(transaction, signature) { + var fields = [formatNumber(transaction.chainId || 0, "chainId"), formatNumber(transaction.nonce || 0, "nonce"), formatNumber(transaction.gasPrice || 0, "gasPrice"), formatNumber(transaction.gasLimit || 0, "gasLimit"), transaction.to != null ? Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getAddress"])(transaction.to) : "0x", formatNumber(transaction.value || 0, "value"), transaction.data || "0x", formatAccessList(transaction.accessList || [])]; + + if (signature) { + var sig = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["splitSignature"])(signature); + fields.push(formatNumber(sig.recoveryParam, "recoveryParam")); + fields.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["stripZeros"])(sig.r)); + fields.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["stripZeros"])(sig.s)); + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexConcat"])(["0x01", _ethersproject_rlp__WEBPACK_IMPORTED_MODULE_6__["encode"](fields)]); +} // Legacy Transactions and EIP-155 + + +function _serialize(transaction, signature) { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_5__["checkProperties"])(transaction, allowedTransactionKeys); + var raw = []; + transactionFields.forEach(function (fieldInfo) { + var value = transaction[fieldInfo.name] || []; + var options = {}; + + if (fieldInfo.numeric) { + options.hexPad = "left"; + } + + value = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(value, options)); // Fixed-width field + + if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) { + logger.throwArgumentError("invalid length for " + fieldInfo.name, "transaction:" + fieldInfo.name, value); + } // Variable-width (with a maximum) + + + if (fieldInfo.maxLength) { + value = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["stripZeros"])(value); + + if (value.length > fieldInfo.maxLength) { + logger.throwArgumentError("invalid length for " + fieldInfo.name, "transaction:" + fieldInfo.name, value); + } + } + + raw.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(value)); + }); + var chainId = 0; + + if (transaction.chainId != null) { + // A chainId was provided; if non-zero we'll use EIP-155 + chainId = transaction.chainId; + + if (typeof chainId !== "number") { + logger.throwArgumentError("invalid transaction.chainId", "transaction", transaction); + } + } else if (signature && !Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isBytesLike"])(signature) && signature.v > 28) { + // No chainId provided, but the signature is signing with EIP-155; derive chainId + chainId = Math.floor((signature.v - 35) / 2); + } // We have an EIP-155 transaction (chainId was specified and non-zero) + + + if (chainId !== 0) { + raw.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(chainId)); // @TODO: hexValue? + + raw.push("0x"); + raw.push("0x"); + } // Requesting an unsigned transaction + + + if (!signature) { + return _ethersproject_rlp__WEBPACK_IMPORTED_MODULE_6__["encode"](raw); + } // The splitSignature will ensure the transaction has a recoveryParam in the + // case that the signTransaction function only adds a v. + + + var sig = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["splitSignature"])(signature); // We pushed a chainId and null r, s on for hashing only; remove those + + var v = 27 + sig.recoveryParam; + + if (chainId !== 0) { + raw.pop(); + raw.pop(); + raw.pop(); + v += chainId * 2 + 8; // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it! + + if (sig.v > 28 && sig.v !== v) { + logger.throwArgumentError("transaction.chainId/signature.v mismatch", "signature", signature); + } + } else if (sig.v !== v) { + logger.throwArgumentError("transaction.chainId/signature.v mismatch", "signature", signature); + } + + raw.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(v)); + raw.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["stripZeros"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(sig.r))); + raw.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["stripZeros"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(sig.s))); + return _ethersproject_rlp__WEBPACK_IMPORTED_MODULE_6__["encode"](raw); +} + +function serialize(transaction, signature) { + // Legacy and EIP-155 Transactions + if (transaction.type == null || transaction.type === 0) { + if (transaction.accessList != null) { + logger.throwArgumentError("untyped transactions do not support accessList; include type: 1", "transaction", transaction); + } + + return _serialize(transaction, signature); + } // Typed Transactions (EIP-2718) + + + switch (transaction.type) { + case 1: + return _serializeEip2930(transaction, signature); + + case 2: + return _serializeEip1559(transaction, signature); + + default: + break; + } + + return logger.throwError("unsupported transaction type: ".concat(transaction.type), _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "serializeTransaction", + transactionType: transaction.type + }); +} + +function _parseEipSignature(tx, fields, serialize) { + try { + var recid = handleNumber(fields[0]).toNumber(); + + if (recid !== 0 && recid !== 1) { + throw new Error("bad recid"); + } + + tx.v = recid; + } catch (error) { + logger.throwArgumentError("invalid v for transaction type: 1", "v", fields[0]); + } + + tx.r = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexZeroPad"])(fields[1], 32); + tx.s = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexZeroPad"])(fields[2], 32); + + try { + var digest = Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_4__["keccak256"])(serialize(tx)); + tx.from = recoverAddress(digest, { + r: tx.r, + s: tx.s, + recoveryParam: tx.v + }); + } catch (error) { + console.log(error); + } +} + +function _parseEip1559(payload) { + var transaction = _ethersproject_rlp__WEBPACK_IMPORTED_MODULE_6__["decode"](payload.slice(1)); + + if (transaction.length !== 9 && transaction.length !== 12) { + logger.throwArgumentError("invalid component count for transaction type: 2", "payload", Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(payload)); + } + + var maxPriorityFeePerGas = handleNumber(transaction[2]); + var maxFeePerGas = handleNumber(transaction[3]); + var tx = { + type: 2, + chainId: handleNumber(transaction[0]).toNumber(), + nonce: handleNumber(transaction[1]).toNumber(), + maxPriorityFeePerGas: maxPriorityFeePerGas, + maxFeePerGas: maxFeePerGas, + gasPrice: null, + gasLimit: handleNumber(transaction[4]), + to: handleAddress(transaction[5]), + value: handleNumber(transaction[6]), + data: transaction[7], + accessList: accessListify(transaction[8]) + }; // Unsigned EIP-1559 Transaction + + if (transaction.length === 9) { + return tx; + } + + tx.hash = Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_4__["keccak256"])(payload); + + _parseEipSignature(tx, transaction.slice(9), _serializeEip1559); + + return tx; +} + +function _parseEip2930(payload) { + var transaction = _ethersproject_rlp__WEBPACK_IMPORTED_MODULE_6__["decode"](payload.slice(1)); + + if (transaction.length !== 8 && transaction.length !== 11) { + logger.throwArgumentError("invalid component count for transaction type: 1", "payload", Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(payload)); + } + + var tx = { + type: 1, + chainId: handleNumber(transaction[0]).toNumber(), + nonce: handleNumber(transaction[1]).toNumber(), + gasPrice: handleNumber(transaction[2]), + gasLimit: handleNumber(transaction[3]), + to: handleAddress(transaction[4]), + value: handleNumber(transaction[5]), + data: transaction[6], + accessList: accessListify(transaction[7]) + }; // Unsigned EIP-2930 Transaction + + if (transaction.length === 8) { + return tx; + } + + tx.hash = Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_4__["keccak256"])(payload); + + _parseEipSignature(tx, transaction.slice(8), _serializeEip2930); + + return tx; +} // Legacy Transactions and EIP-155 + + +function _parse(rawTransaction) { + var transaction = _ethersproject_rlp__WEBPACK_IMPORTED_MODULE_6__["decode"](rawTransaction); + + if (transaction.length !== 9 && transaction.length !== 6) { + logger.throwArgumentError("invalid raw transaction", "rawTransaction", rawTransaction); + } + + var tx = { + nonce: handleNumber(transaction[0]).toNumber(), + gasPrice: handleNumber(transaction[1]), + gasLimit: handleNumber(transaction[2]), + to: handleAddress(transaction[3]), + value: handleNumber(transaction[4]), + data: transaction[5], + chainId: 0 + }; // Legacy unsigned transaction + + if (transaction.length === 6) { + return tx; + } + + try { + tx.v = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(transaction[6]).toNumber(); + } catch (error) { + console.log(error); + return tx; + } + + tx.r = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexZeroPad"])(transaction[7], 32); + tx.s = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexZeroPad"])(transaction[8], 32); + + if (_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(tx.r).isZero() && _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(tx.s).isZero()) { + // EIP-155 unsigned transaction + tx.chainId = tx.v; + tx.v = 0; + } else { + // Signed Transaction + tx.chainId = Math.floor((tx.v - 35) / 2); + + if (tx.chainId < 0) { + tx.chainId = 0; + } + + var recoveryParam = tx.v - 27; + var raw = transaction.slice(0, 6); + + if (tx.chainId !== 0) { + raw.push(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(tx.chainId)); + raw.push("0x"); + raw.push("0x"); + recoveryParam -= tx.chainId * 2 + 8; + } + + var digest = Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_4__["keccak256"])(_ethersproject_rlp__WEBPACK_IMPORTED_MODULE_6__["encode"](raw)); + + try { + tx.from = recoverAddress(digest, { + r: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(tx.r), + s: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(tx.s), + recoveryParam: recoveryParam + }); + } catch (error) { + console.log(error); + } + + tx.hash = Object(_ethersproject_keccak256__WEBPACK_IMPORTED_MODULE_4__["keccak256"])(rawTransaction); + } + + tx.type = null; + return tx; +} + +function parse(rawTransaction) { + var payload = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["arrayify"])(rawTransaction); // Legacy and EIP-155 Transactions + + if (payload[0] > 0x7f) { + return _parse(payload); + } // Typed Transaction (EIP-2718) + + + switch (payload[0]) { + case 1: + return _parseEip2930(payload); + + case 2: + return _parseEip1559(payload); + + default: + break; + } + + return logger.throwError("unsupported transaction type: ".concat(payload[0]), _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "parseTransaction", + transactionType: payload[0] + }); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/_version.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/_version.js ***! + \***************************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "web/5.5.1"; + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/geturl.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/geturl.js ***! + \*************************************************************************************************/ +/*! exports provided: getUrl */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUrl", function() { return getUrl; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); + + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + +function getUrl(href, options) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var request, response, body, headers; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (options == null) { + options = {}; + } + + request = { + method: options.method || "GET", + headers: options.headers || {}, + body: options.body || undefined + }; + + if (options.skipFetchSetup !== true) { + request.mode = "cors"; // no-cors, cors, *same-origin + + request.cache = "no-cache"; // *default, no-cache, reload, force-cache, only-if-cached + + request.credentials = "same-origin"; // include, *same-origin, omit + + request.redirect = "follow"; // manual, *follow, error + + request.referrer = "client"; // no-referrer, *client + } + + ; + _context.next = 6; + return fetch(href, request); + + case 6: + response = _context.sent; + _context.next = 9; + return response.arrayBuffer(); + + case 9: + body = _context.sent; + headers = {}; + + if (response.headers.forEach) { + response.headers.forEach(function (value, key) { + headers[key.toLowerCase()] = value; + }); + } else { + response.headers.keys().forEach(function (key) { + headers[key.toLowerCase()] = response.headers.get(key); + }); + } + + return _context.abrupt("return", { + headers: headers, + statusCode: response.status, + statusMessage: response.statusText, + body: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["arrayify"])(new Uint8Array(body)) + }); + + case 13: + case "end": + return _context.stop(); + } + } + }, _callee); + })); +} + +/***/ }), + +/***/ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/index.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/index.js ***! + \************************************************************************************************/ +/*! exports provided: _fetchData, fetchJson, poll */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_fetchData", function() { return _fetchData; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fetchJson", function() { return fetchJson; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "poll", function() { return poll; }); +/* harmony import */ var _ethersproject_base64__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/base64 */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/base64/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/strings/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_version */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/_version.js"); +/* harmony import */ var _geturl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./geturl */ "./node_modules/@ethersproject/providers/node_modules/@ethersproject/web/lib.esm/geturl.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"](_version__WEBPACK_IMPORTED_MODULE_5__["version"]); + + +function staller(duration) { + return new Promise(function (resolve) { + setTimeout(resolve, duration); + }); +} + +function bodyify(value, type) { + if (value == null) { + return null; + } + + if (typeof value === "string") { + return value; + } + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["isBytesLike"])(value)) { + if (type && (type.split("/")[0] === "text" || type.split(";")[0].trim() === "application/json")) { + try { + return Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_3__["toUtf8String"])(value); + } catch (error) {} + + ; + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__["hexlify"])(value); + } + + return value; +} // This API is still a work in progress; the future changes will likely be: +// - ConnectionInfo => FetchDataRequest +// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array } +// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified) +// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T +// For this reason, it should be considered internal until the API is finalized + + +function _fetchData(connection, body, processFunc) { + // How many times to retry in the event of a throttle + var attemptLimit = _typeof(connection) === "object" && connection.throttleLimit != null ? connection.throttleLimit : 12; + logger.assertArgument(attemptLimit > 0 && attemptLimit % 1 === 0, "invalid connection throttle limit", "connection.throttleLimit", attemptLimit); + var throttleCallback = _typeof(connection) === "object" ? connection.throttleCallback : null; + var throttleSlotInterval = _typeof(connection) === "object" && typeof connection.throttleSlotInterval === "number" ? connection.throttleSlotInterval : 100; + logger.assertArgument(throttleSlotInterval > 0 && throttleSlotInterval % 1 === 0, "invalid connection throttle slot interval", "connection.throttleSlotInterval", throttleSlotInterval); + var headers = {}; + var url = null; // @TODO: Allow ConnectionInfo to override some of these values + + var options = { + method: "GET" + }; + var allow304 = false; + var timeout = 2 * 60 * 1000; + + if (typeof connection === "string") { + url = connection; + } else if (_typeof(connection) === "object") { + if (connection == null || connection.url == null) { + logger.throwArgumentError("missing URL", "connection.url", connection); + } + + url = connection.url; + + if (typeof connection.timeout === "number" && connection.timeout > 0) { + timeout = connection.timeout; + } + + if (connection.headers) { + for (var key in connection.headers) { + headers[key.toLowerCase()] = { + key: key, + value: String(connection.headers[key]) + }; + + if (["if-none-match", "if-modified-since"].indexOf(key.toLowerCase()) >= 0) { + allow304 = true; + } + } + } + + options.allowGzip = !!connection.allowGzip; + + if (connection.user != null && connection.password != null) { + if (url.substring(0, 6) !== "https:" && connection.allowInsecureAuthentication !== true) { + logger.throwError("basic authentication requires a secure https url", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.INVALID_ARGUMENT, { + argument: "url", + url: url, + user: connection.user, + password: "[REDACTED]" + }); + } + + var authorization = connection.user + ":" + connection.password; + headers["authorization"] = { + key: "Authorization", + value: "Basic " + Object(_ethersproject_base64__WEBPACK_IMPORTED_MODULE_0__["encode"])(Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_3__["toUtf8Bytes"])(authorization)) + }; + } + } + + var reData = new RegExp("^data:([a-z0-9-]+/[a-z0-9-]+);base64,(.*)$", "i"); + var dataMatch = url ? url.match(reData) : null; + + if (dataMatch) { + try { + var response = { + statusCode: 200, + statusMessage: "OK", + headers: { + "content-type": dataMatch[1] + }, + body: Object(_ethersproject_base64__WEBPACK_IMPORTED_MODULE_0__["decode"])(dataMatch[2]) + }; + var result = response.body; + + if (processFunc) { + result = processFunc(response.body, response); + } + + return Promise.resolve(result); + } catch (error) { + logger.throwError("processing response error", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.SERVER_ERROR, { + body: bodyify(dataMatch[1], dataMatch[2]), + error: error, + requestBody: null, + requestMethod: "GET", + url: url + }); + } + } + + if (body) { + options.method = "POST"; + options.body = body; + + if (headers["content-type"] == null) { + headers["content-type"] = { + key: "Content-Type", + value: "application/octet-stream" + }; + } + + if (headers["content-length"] == null) { + headers["content-length"] = { + key: "Content-Length", + value: String(body.length) + }; + } + } + + var flatHeaders = {}; + Object.keys(headers).forEach(function (key) { + var header = headers[key]; + flatHeaders[header.key] = header.value; + }); + options.headers = flatHeaders; + + var runningTimeout = function () { + var timer = null; + var promise = new Promise(function (resolve, reject) { + if (timeout) { + timer = setTimeout(function () { + if (timer == null) { + return; + } + + timer = null; + reject(logger.makeError("timeout", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.TIMEOUT, { + requestBody: bodyify(options.body, flatHeaders["content-type"]), + requestMethod: options.method, + timeout: timeout, + url: url + })); + }, timeout); + } + }); + + var cancel = function cancel() { + if (timer == null) { + return; + } + + clearTimeout(timer); + timer = null; + }; + + return { + promise: promise, + cancel: cancel + }; + }(); + + var runningFetch = function () { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var attempt, _response, location, tryAgain, stall, retryAfter, _body, _result, _tryAgain, _timeout; + + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + attempt = 0; + + case 1: + if (!(attempt < attemptLimit)) { + _context.next = 65; + break; + } + + _response = null; + _context.prev = 3; + _context.next = 6; + return Object(_geturl__WEBPACK_IMPORTED_MODULE_6__["getUrl"])(url, options); + + case 6: + _response = _context.sent; + + if (!(attempt < attemptLimit)) { + _context.next = 28; + break; + } + + if (!(_response.statusCode === 301 || _response.statusCode === 302)) { + _context.next = 15; + break; + } + + // Redirection; for now we only support absolute locataions + location = _response.headers.location || ""; + + if (!(options.method === "GET" && location.match(/^https:/))) { + _context.next = 13; + break; + } + + url = _response.headers.location; + return _context.abrupt("continue", 62); + + case 13: + _context.next = 28; + break; + + case 15: + if (!(_response.statusCode === 429)) { + _context.next = 28; + break; + } + + // Exponential back-off throttling + tryAgain = true; + + if (!throttleCallback) { + _context.next = 21; + break; + } + + _context.next = 20; + return throttleCallback(attempt, url); + + case 20: + tryAgain = _context.sent; + + case 21: + if (!tryAgain) { + _context.next = 28; + break; + } + + stall = 0; + retryAfter = _response.headers["retry-after"]; + + if (typeof retryAfter === "string" && retryAfter.match(/^[1-9][0-9]*$/)) { + stall = parseInt(retryAfter) * 1000; + } else { + stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt))); + } //console.log("Stalling 429"); + + + _context.next = 27; + return staller(stall); + + case 27: + return _context.abrupt("continue", 62); + + case 28: + _context.next = 34; + break; + + case 30: + _context.prev = 30; + _context.t0 = _context["catch"](3); + _response = _context.t0.response; + + if (_response == null) { + runningTimeout.cancel(); + logger.throwError("missing response", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.SERVER_ERROR, { + requestBody: bodyify(options.body, flatHeaders["content-type"]), + requestMethod: options.method, + serverError: _context.t0, + url: url + }); + } + + case 34: + _body = _response.body; + + if (allow304 && _response.statusCode === 304) { + _body = null; + } else if (_response.statusCode < 200 || _response.statusCode >= 300) { + runningTimeout.cancel(); + logger.throwError("bad response", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.SERVER_ERROR, { + status: _response.statusCode, + headers: _response.headers, + body: bodyify(_body, _response.headers ? _response.headers["content-type"] : null), + requestBody: bodyify(options.body, flatHeaders["content-type"]), + requestMethod: options.method, + url: url + }); + } + + if (!processFunc) { + _context.next = 60; + break; + } + + _context.prev = 37; + _context.next = 40; + return processFunc(_body, _response); + + case 40: + _result = _context.sent; + runningTimeout.cancel(); + return _context.abrupt("return", _result); + + case 45: + _context.prev = 45; + _context.t1 = _context["catch"](37); + + if (!(_context.t1.throttleRetry && attempt < attemptLimit)) { + _context.next = 58; + break; + } + + _tryAgain = true; + + if (!throttleCallback) { + _context.next = 53; + break; + } + + _context.next = 52; + return throttleCallback(attempt, url); + + case 52: + _tryAgain = _context.sent; + + case 53: + if (!_tryAgain) { + _context.next = 58; + break; + } + + _timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt))); //console.log("Stalling callback"); + + _context.next = 57; + return staller(_timeout); + + case 57: + return _context.abrupt("continue", 62); + + case 58: + runningTimeout.cancel(); + logger.throwError("processing response error", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.SERVER_ERROR, { + body: bodyify(_body, _response.headers ? _response.headers["content-type"] : null), + error: _context.t1, + requestBody: bodyify(options.body, flatHeaders["content-type"]), + requestMethod: options.method, + url: url + }); + + case 60: + runningTimeout.cancel(); // If we had a processFunc, it either returned a T or threw above. + // The "body" is now a Uint8Array. + + return _context.abrupt("return", _body); + + case 62: + attempt++; + _context.next = 1; + break; + + case 65: + return _context.abrupt("return", logger.throwError("failed response", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.SERVER_ERROR, { + requestBody: bodyify(options.body, flatHeaders["content-type"]), + requestMethod: options.method, + url: url + })); + + case 66: + case "end": + return _context.stop(); + } + } + }, _callee, null, [[3, 30], [37, 45]]); + })); + }(); + + return Promise.race([runningTimeout.promise, runningFetch]); +} +function fetchJson(connection, json, processFunc) { + var processJsonFunc = function processJsonFunc(value, response) { + var result = null; + + if (value != null) { + try { + result = JSON.parse(Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_3__["toUtf8String"])(value)); + } catch (error) { + logger.throwError("invalid JSON", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.SERVER_ERROR, { + body: value, + error: error + }); + } + } + + if (processFunc) { + result = processFunc(result, response); + } + + return result; + }; // If we have json to send, we must + // - add content-type of application/json (unless already overridden) + // - convert the json to bytes + + + var body = null; + + if (json != null) { + body = Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_3__["toUtf8Bytes"])(json); // Create a connection with the content-type set for JSON + + var updated = typeof connection === "string" ? { + url: connection + } : Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["shallowCopy"])(connection); + + if (updated.headers) { + var hasContentType = Object.keys(updated.headers).filter(function (k) { + return k.toLowerCase() === "content-type"; + }).length !== 0; + + if (!hasContentType) { + updated.headers = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["shallowCopy"])(updated.headers); + updated.headers["content-type"] = "application/json"; + } + } else { + updated.headers = { + "content-type": "application/json" + }; + } + + connection = updated; + } + + return _fetchData(connection, body, processJsonFunc); +} +function poll(func, options) { + if (!options) { + options = {}; + } + + options = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_2__["shallowCopy"])(options); + + if (options.floor == null) { + options.floor = 0; + } + + if (options.ceiling == null) { + options.ceiling = 10000; + } + + if (options.interval == null) { + options.interval = 250; + } + + return new Promise(function (resolve, reject) { + var timer = null; + var done = false; // Returns true if cancel was successful. Unsuccessful cancel means we're already done. + + var cancel = function cancel() { + if (done) { + return false; + } + + done = true; + + if (timer) { + clearTimeout(timer); + } + + return true; + }; + + if (options.timeout) { + timer = setTimeout(function () { + if (cancel()) { + reject(new Error("timeout")); + } + }, options.timeout); + } + + var retryLimit = options.retryLimit; + var attempt = 0; + + function check() { + return func().then(function (result) { + // If we have a result, or are allowed null then we're done + if (result !== undefined) { + if (cancel()) { + resolve(result); + } + } else if (options.oncePoll) { + options.oncePoll.once("poll", check); + } else if (options.onceBlock) { + options.onceBlock.once("block", check); // Otherwise, exponential back-off (up to 10s) our next request + } else if (!done) { + attempt++; + + if (attempt > retryLimit) { + if (cancel()) { + reject(new Error("retry limit reached")); + } + + return; + } + + var timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt))); + + if (timeout < options.floor) { + timeout = options.floor; + } + + if (timeout > options.ceiling) { + timeout = options.ceiling; + } + + setTimeout(check, timeout); + } + + return null; + }, function (error) { + if (cancel()) { + reject(error); + } + }); + } + + check(); + }); +} + /***/ }), /***/ "./node_modules/@ethersproject/random/lib.esm/_version.js": @@ -21050,7 +30937,7 @@ try { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "random/5.5.1"; +var version = "random/5.6.0"; /***/ }), @@ -21180,7 +31067,7 @@ function shuffled(array) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "rlp/5.5.0"; +var version = "rlp/5.6.0"; /***/ }), @@ -21379,7 +31266,7 @@ function decode(data) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "sha2/5.5.0"; +var version = "sha2/5.6.0"; /***/ }), @@ -21491,7 +31378,7 @@ var SupportedAlgorithm; "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "signing-key/5.5.0"; +var version = "signing-key/5.6.0"; /***/ }), @@ -23879,7 +33766,7 @@ function computePublicKey(key, compressed) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "solidity/5.5.0"; +var version = "solidity/5.6.0"; /***/ }), @@ -24031,7 +33918,7 @@ function sha256(types, values) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "strings/5.5.0"; +var version = "strings/5.6.0"; /***/ }), @@ -24855,7 +34742,7 @@ function toUtf8CodePoints(str) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "transactions/5.5.0"; +var version = "transactions/5.6.0"; /***/ }), @@ -25373,7 +35260,7 @@ function parse(rawTransaction) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "units/5.5.0"; +var version = "units/5.6.0"; /***/ }), @@ -25498,7 +35385,7 @@ function parseEther(ether) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "wallet/5.5.0"; +var version = "wallet/5.6.0"; /***/ }), @@ -25873,7 +35760,7 @@ function verifyTypedData(domain, types, value, signature) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "web/5.5.1"; +var version = "web/5.6.0"; /***/ }), @@ -26100,6 +35987,7 @@ function _fetchData(connection, body, processFunc) { var throttleCallback = _typeof(connection) === "object" ? connection.throttleCallback : null; var throttleSlotInterval = _typeof(connection) === "object" && typeof connection.throttleSlotInterval === "number" ? connection.throttleSlotInterval : 100; logger.assertArgument(throttleSlotInterval > 0 && throttleSlotInterval % 1 === 0, "invalid connection throttle slot interval", "connection.throttleSlotInterval", throttleSlotInterval); + var errorPassThrough = _typeof(connection) === "object" ? !!connection.errorPassThrough : false; var headers = {}; var url = null; // @TODO: Allow ConnectionInfo to override some of these values @@ -26153,6 +36041,10 @@ function _fetchData(connection, body, processFunc) { value: "Basic " + Object(_ethersproject_base64__WEBPACK_IMPORTED_MODULE_0__["encode"])(Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_3__["toUtf8Bytes"])(authorization)) }; } + + if (connection.skipFetchSetup != null) { + options.skipFetchSetup = !!connection.skipFetchSetup; + } } var reData = new RegExp("^data:([a-z0-9-]+/[a-z0-9-]+);base64,(.*)$", "i"); @@ -26362,7 +36254,7 @@ function _fetchData(connection, body, processFunc) { if (allow304 && _response.statusCode === 304) { _body = null; - } else if (_response.statusCode < 200 || _response.statusCode >= 300) { + } else if (!errorPassThrough && (_response.statusCode < 200 || _response.statusCode >= 300)) { runningTimeout.cancel(); logger.throwError("bad response", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.SERVER_ERROR, { status: _response.statusCode, @@ -26624,7 +36516,7 @@ function poll(func, options) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "wordlists/5.5.0"; +var version = "wordlists/5.6.0"; /***/ }), @@ -26944,7 +36836,7 @@ function getClientMeta() { /*!*********************************************************************!*\ !*** ./node_modules/@walletconnect/browser-utils/dist/esm/index.js ***! \*********************************************************************/ -/*! exports provided: detectEnv, detectOS, isAndroid, isIOS, isMobile, isNode, isBrowser, getFromWindow, getFromWindowOrThrow, getDocumentOrThrow, getDocument, getNavigatorOrThrow, getNavigator, getLocationOrThrow, getLocation, getCryptoOrThrow, getCrypto, getLocalStorageOrThrow, getLocalStorage, getClientMeta, safeJsonParse, safeJsonStringify, setLocal, getLocal, removeLocal, mobileLinkChoiceKey, formatIOSMobile, saveMobileLinkInfo, getMobileRegistryEntry, getMobileLinkRegistry, getWalletRegistryUrl, getDappRegistryUrl, getAppLogoUrl, formatMobileRegistryEntry, formatMobileRegistry */ +/*! exports provided: detectEnv, detectOS, isAndroid, isIOS, isMobile, isNode, isBrowser, getFromWindow, getFromWindowOrThrow, getDocumentOrThrow, getDocument, getNavigatorOrThrow, getNavigator, getLocationOrThrow, getLocation, getCryptoOrThrow, getCrypto, getLocalStorageOrThrow, getLocalStorage, getClientMeta, safeJsonParse, safeJsonStringify, setLocal, getLocal, removeLocal, mobileLinkChoiceKey, formatIOSMobile, saveMobileLinkInfo, getMobileRegistryEntry, getMobileLinkRegistry, getWalletRegistryUrl, getDappRegistryUrl, formatMobileRegistryEntry, formatMobileRegistry */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -27018,8 +36910,6 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDappRegistryUrl", function() { return _registry__WEBPACK_IMPORTED_MODULE_4__["getDappRegistryUrl"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAppLogoUrl", function() { return _registry__WEBPACK_IMPORTED_MODULE_4__["getAppLogoUrl"]; }); - /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatMobileRegistryEntry", function() { return _registry__WEBPACK_IMPORTED_MODULE_4__["formatMobileRegistryEntry"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatMobileRegistry", function() { return _registry__WEBPACK_IMPORTED_MODULE_4__["formatMobileRegistry"]; }); @@ -27146,33 +37036,32 @@ function getMobileLinkRegistry(registry, whitelist) { /*!************************************************************************!*\ !*** ./node_modules/@walletconnect/browser-utils/dist/esm/registry.js ***! \************************************************************************/ -/*! exports provided: getWalletRegistryUrl, getDappRegistryUrl, getAppLogoUrl, formatMobileRegistryEntry, formatMobileRegistry */ +/*! exports provided: getWalletRegistryUrl, getDappRegistryUrl, formatMobileRegistryEntry, formatMobileRegistry */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getWalletRegistryUrl", function() { return getWalletRegistryUrl; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDappRegistryUrl", function() { return getDappRegistryUrl; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getAppLogoUrl", function() { return getAppLogoUrl; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatMobileRegistryEntry", function() { return formatMobileRegistryEntry; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "formatMobileRegistry", function() { return formatMobileRegistry; }); -var API_URL = "https://registry.walletconnect.org"; +var API_URL = "https://registry.walletconnect.com"; function getWalletRegistryUrl() { - return API_URL + "/data/wallets.json"; + return API_URL + "/api/v2/wallets"; } function getDappRegistryUrl() { - return API_URL + "/data/dapps.json"; -} -function getAppLogoUrl(id) { - return API_URL + "/logo/sm/" + id + ".jpeg"; + return API_URL + "/api/v2/dapps"; } function formatMobileRegistryEntry(entry) { var platform = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "mobile"; + + var _a; + return { name: entry.name || "", shortName: entry.metadata.shortName || "", color: entry.metadata.colors.primary || "", - logo: entry.id ? getAppLogoUrl(entry.id) : "", + logo: (_a = entry.image_url.sm) !== null && _a !== void 0 ? _a : "", universalLink: entry[platform].universal || "", deepLink: entry[platform]["native"] || "" }; @@ -28769,7 +38658,7 @@ var Connector = /*#__PURE__*/function () { return; } - if (payload.result) { + if (Object(_walletconnect_utils__WEBPACK_IMPORTED_MODULE_0__["isJsonRpcResponseSuccess"])(payload)) { _this4._handleSessionResponse(errorMsg, payload.result); } else if (payload.error && payload.error.message) { _this4._handleSessionResponse(payload.error.message); @@ -28790,7 +38679,7 @@ var Connector = /*#__PURE__*/function () { return; } - if (payload.result) { + if (Object(_walletconnect_utils__WEBPACK_IMPORTED_MODULE_0__["isJsonRpcResponseSuccess"])(payload)) { resolve(payload.result); } else if (payload.error && payload.error.message) { reject(new Error(payload.error.message)); @@ -30297,16 +40186,71 @@ function _browserSha2() { /***/ }), -/***/ "./node_modules/@walletconnect/encoding/dist/cjs/index.js": +/***/ "./node_modules/@walletconnect/encoding/dist/esm/index.js": /*!****************************************************************!*\ - !*** ./node_modules/@walletconnect/encoding/dist/cjs/index.js ***! + !*** ./node_modules/@walletconnect/encoding/dist/esm/index.js ***! \****************************************************************/ -/*! no static exports found */ -/***/ (function(module, exports, __webpack_require__) { +/*! exports provided: bufferToArray, bufferToHex, bufferToUtf8, bufferToNumber, bufferToBinary, arrayToBuffer, arrayToHex, arrayToUtf8, arrayToNumber, arrayToBinary, hexToBuffer, hexToArray, hexToUtf8, hexToNumber, hexToBinary, utf8ToBuffer, utf8ToArray, utf8ToHex, utf8ToNumber, utf8ToBinary, numberToBuffer, numberToArray, numberToHex, numberToUtf8, numberToBinary, binaryToBuffer, binaryToArray, binaryToHex, binaryToUtf8, binaryToNumber, isBinaryString, isHexString, isBuffer, isTypedArray, isArrayBuffer, getType, getEncoding, concatBuffers, concatArrays, trimLeft, trimRight, calcByteLength, splitBytes, swapBytes, swapHex, sanitizeBytes, padLeft, padRight, removeHexPrefix, addHexPrefix, sanitizeHex, removeHexLeadingZeros */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -/* WEBPACK VAR INJECTION */(function(Buffer) { - +__webpack_require__.r(__webpack_exports__); +/* WEBPACK VAR INJECTION */(function(Buffer) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferToArray", function() { return bufferToArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferToHex", function() { return bufferToHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferToUtf8", function() { return bufferToUtf8; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferToNumber", function() { return bufferToNumber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferToBinary", function() { return bufferToBinary; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayToBuffer", function() { return arrayToBuffer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayToHex", function() { return arrayToHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayToUtf8", function() { return arrayToUtf8; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayToNumber", function() { return arrayToNumber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "arrayToBinary", function() { return arrayToBinary; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexToBuffer", function() { return hexToBuffer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexToArray", function() { return hexToArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexToUtf8", function() { return hexToUtf8; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexToNumber", function() { return hexToNumber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "hexToBinary", function() { return hexToBinary; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utf8ToBuffer", function() { return utf8ToBuffer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utf8ToArray", function() { return utf8ToArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utf8ToHex", function() { return utf8ToHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utf8ToNumber", function() { return utf8ToNumber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "utf8ToBinary", function() { return utf8ToBinary; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "numberToBuffer", function() { return numberToBuffer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "numberToArray", function() { return numberToArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "numberToHex", function() { return numberToHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "numberToUtf8", function() { return numberToUtf8; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "numberToBinary", function() { return numberToBinary; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "binaryToBuffer", function() { return binaryToBuffer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "binaryToArray", function() { return binaryToArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "binaryToHex", function() { return binaryToHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "binaryToUtf8", function() { return binaryToUtf8; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "binaryToNumber", function() { return binaryToNumber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBinaryString", function() { return isBinaryString; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isHexString", function() { return isHexString; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isBuffer", function() { return isBuffer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isTypedArray", function() { return isTypedArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isArrayBuffer", function() { return isArrayBuffer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getType", function() { return getType; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getEncoding", function() { return getEncoding; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatBuffers", function() { return concatBuffers; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatArrays", function() { return concatArrays; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trimLeft", function() { return trimLeft; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "trimRight", function() { return trimRight; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "calcByteLength", function() { return calcByteLength; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "splitBytes", function() { return splitBytes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "swapBytes", function() { return swapBytes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "swapHex", function() { return swapHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sanitizeBytes", function() { return sanitizeBytes; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padLeft", function() { return padLeft; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "padRight", function() { return padRight; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeHexPrefix", function() { return removeHexPrefix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "addHexPrefix", function() { return addHexPrefix; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sanitizeHex", function() { return sanitizeHex; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "removeHexLeadingZeros", function() { return removeHexLeadingZeros; }); +/* harmony import */ var is_typedarray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! is-typedarray */ "./node_modules/is-typedarray/index.js"); +/* harmony import */ var is_typedarray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(is_typedarray__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var typedarray_to_buffer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! typedarray-to-buffer */ "./node_modules/typedarray-to-buffer/index.js"); +/* harmony import */ var typedarray_to_buffer__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(typedarray_to_buffer__WEBPACK_IMPORTED_MODULE_1__); function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -30321,20 +40265,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } -var __importDefault = this && this.__importDefault || function (mod) { - return mod && mod.__esModule ? mod : { - "default": mod - }; -}; -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.removeHexLeadingZeros = exports.sanitizeHex = exports.addHexPrefix = exports.removeHexPrefix = exports.padRight = exports.padLeft = exports.sanitizeBytes = exports.swapHex = exports.swapBytes = exports.splitBytes = exports.calcByteLength = exports.trimRight = exports.trimLeft = exports.concatArrays = exports.concatBuffers = exports.getEncoding = exports.getType = exports.isArrayBuffer = exports.isTypedArray = exports.isBuffer = exports.isHexString = exports.isBinaryString = exports.binaryToNumber = exports.binaryToUtf8 = exports.binaryToHex = exports.binaryToArray = exports.binaryToBuffer = exports.numberToBinary = exports.numberToUtf8 = exports.numberToHex = exports.numberToArray = exports.numberToBuffer = exports.utf8ToBinary = exports.utf8ToNumber = exports.utf8ToHex = exports.utf8ToArray = exports.utf8ToBuffer = exports.hexToBinary = exports.hexToNumber = exports.hexToUtf8 = exports.hexToArray = exports.hexToBuffer = exports.arrayToBinary = exports.arrayToNumber = exports.arrayToUtf8 = exports.arrayToHex = exports.arrayToBuffer = exports.bufferToBinary = exports.bufferToNumber = exports.bufferToUtf8 = exports.bufferToHex = exports.bufferToArray = void 0; - -var is_typedarray_1 = __importDefault(__webpack_require__(/*! is-typedarray */ "./node_modules/is-typedarray/index.js")); - -var typedarray_to_buffer_1 = __importDefault(__webpack_require__(/*! typedarray-to-buffer */ "./node_modules/typedarray-to-buffer/index.js")); var ENC_HEX = "hex"; var ENC_UTF8 = "utf8"; @@ -30344,196 +40275,105 @@ var TYPE_ARRAY = "array"; var TYPE_TYPED_ARRAY = "typed-array"; var TYPE_ARRAY_BUFFER = "array-buffer"; var STRING_ZERO = "0"; - function bufferToArray(buf) { return new Uint8Array(buf); } - -exports.bufferToArray = bufferToArray; - function bufferToHex(buf) { var prefixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; var hex = buf.toString(ENC_HEX); return prefixed ? addHexPrefix(hex) : hex; } - -exports.bufferToHex = bufferToHex; - function bufferToUtf8(buf) { return buf.toString(ENC_UTF8); } - -exports.bufferToUtf8 = bufferToUtf8; - function bufferToNumber(buf) { return buf.readUIntBE(0, buf.length); } - -exports.bufferToNumber = bufferToNumber; - function bufferToBinary(buf) { return arrayToBinary(bufferToArray(buf)); } - -exports.bufferToBinary = bufferToBinary; - function arrayToBuffer(arr) { - return typedarray_to_buffer_1["default"](arr); + return typedarray_to_buffer__WEBPACK_IMPORTED_MODULE_1___default()(arr); } - -exports.arrayToBuffer = arrayToBuffer; - function arrayToHex(arr) { var prefixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; return bufferToHex(arrayToBuffer(arr), prefixed); } - -exports.arrayToHex = arrayToHex; - function arrayToUtf8(arr) { return bufferToUtf8(arrayToBuffer(arr)); } - -exports.arrayToUtf8 = arrayToUtf8; - function arrayToNumber(arr) { return bufferToNumber(arrayToBuffer(arr)); } - -exports.arrayToNumber = arrayToNumber; - function arrayToBinary(arr) { return Array.from(arr).map(numberToBinary).join(""); } - -exports.arrayToBinary = arrayToBinary; - function hexToBuffer(hex) { return Buffer.from(removeHexPrefix(hex), ENC_HEX); } - -exports.hexToBuffer = hexToBuffer; - function hexToArray(hex) { return bufferToArray(hexToBuffer(hex)); } - -exports.hexToArray = hexToArray; - function hexToUtf8(hex) { return bufferToUtf8(hexToBuffer(hex)); } - -exports.hexToUtf8 = hexToUtf8; - function hexToNumber(hex) { return arrayToNumber(hexToArray(hex)); } - -exports.hexToNumber = hexToNumber; - function hexToBinary(hex) { return arrayToBinary(hexToArray(hex)); } - -exports.hexToBinary = hexToBinary; - function utf8ToBuffer(utf8) { return Buffer.from(utf8, ENC_UTF8); } - -exports.utf8ToBuffer = utf8ToBuffer; - function utf8ToArray(utf8) { return bufferToArray(utf8ToBuffer(utf8)); } - -exports.utf8ToArray = utf8ToArray; - function utf8ToHex(utf8) { var prefixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; return bufferToHex(utf8ToBuffer(utf8), prefixed); } - -exports.utf8ToHex = utf8ToHex; - function utf8ToNumber(utf8) { var num = parseInt(utf8, 10); assert(isDefined(num), "Number can only safely store up to 53 bits"); return num; } - -exports.utf8ToNumber = utf8ToNumber; - function utf8ToBinary(utf8) { return arrayToBinary(utf8ToArray(utf8)); } - -exports.utf8ToBinary = utf8ToBinary; - function numberToBuffer(num) { return binaryToBuffer(numberToBinary(num)); } - -exports.numberToBuffer = numberToBuffer; - function numberToArray(num) { return binaryToArray(numberToBinary(num)); } - -exports.numberToArray = numberToArray; - function numberToHex(num, prefixed) { return binaryToHex(numberToBinary(num), prefixed); } - -exports.numberToHex = numberToHex; - function numberToUtf8(num) { return "".concat(num); } - -exports.numberToUtf8 = numberToUtf8; - function numberToBinary(num) { var bin = (num >>> 0).toString(2); return sanitizeBytes(bin); } - -exports.numberToBinary = numberToBinary; - function binaryToBuffer(bin) { return arrayToBuffer(binaryToArray(bin)); } - -exports.binaryToBuffer = binaryToBuffer; - function binaryToArray(bin) { return new Uint8Array(splitBytes(bin).map(function (x) { return parseInt(x, 2); })); } - -exports.binaryToArray = binaryToArray; - function binaryToHex(bin, prefixed) { return arrayToHex(binaryToArray(bin), prefixed); } - -exports.binaryToHex = binaryToHex; - function binaryToUtf8(bin) { return arrayToUtf8(binaryToArray(bin)); } - -exports.binaryToUtf8 = binaryToUtf8; - function binaryToNumber(bin) { return arrayToNumber(binaryToArray(bin)); } - -exports.binaryToNumber = binaryToNumber; - function isBinaryString(str) { if (typeof str !== "string" || !new RegExp(/^[01]+$/).test(str)) { return false; @@ -30545,9 +40385,6 @@ function isBinaryString(str) { return true; } - -exports.isBinaryString = isBinaryString; - function isHexString(str, length) { if (typeof str !== "string" || !str.match(/^0x[0-9A-Fa-f]*$/)) { return false; @@ -30559,27 +40396,15 @@ function isHexString(str, length) { return true; } - -exports.isHexString = isHexString; - function isBuffer(val) { return Buffer.isBuffer(val); } - -exports.isBuffer = isBuffer; - function isTypedArray(val) { - return is_typedarray_1["default"].strict(val) && !isBuffer(val); + return is_typedarray__WEBPACK_IMPORTED_MODULE_0___default.a.strict(val) && !isBuffer(val); } - -exports.isTypedArray = isTypedArray; - function isArrayBuffer(val) { return !isTypedArray(val) && !isBuffer(val) && typeof val.byteLength !== "undefined"; } - -exports.isArrayBuffer = isArrayBuffer; - function getType(val) { if (isBuffer(val)) { return TYPE_BUFFER; @@ -30593,9 +40418,6 @@ function getType(val) { return _typeof(val); } } - -exports.getType = getType; - function getEncoding(str) { if (isBinaryString(str)) { return ENC_BIN; @@ -30607,9 +40429,6 @@ function getEncoding(str) { return ENC_UTF8; } - -exports.getEncoding = getEncoding; - function concatBuffers() { for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; @@ -30618,9 +40437,6 @@ function concatBuffers() { var result = Buffer.concat(args); return result; } - -exports.concatBuffers = concatBuffers; - function concatArrays() { var result = []; @@ -30633,9 +40449,6 @@ function concatArrays() { }); return new Uint8Array(_toConsumableArray(result)); } - -exports.concatArrays = concatArrays; - function trimLeft(data, length) { var diff = data.length - length; @@ -30645,77 +40458,44 @@ function trimLeft(data, length) { return data; } - -exports.trimLeft = trimLeft; - function trimRight(data, length) { return data.slice(0, length); } - -exports.trimRight = trimRight; - function calcByteLength(length) { var byteSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8; var remainder = length % byteSize; return remainder ? (length - remainder) / byteSize * byteSize + byteSize : length; } - -exports.calcByteLength = calcByteLength; - function splitBytes(str) { var byteSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8; var bytes = sanitizeBytes(str).match(new RegExp(".{".concat(byteSize, "}"), "gi")); return Array.from(bytes || []); } - -exports.splitBytes = splitBytes; - function swapBytes(str) { return splitBytes(str).map(reverseString).join(""); } - -exports.swapBytes = swapBytes; - function swapHex(str) { return binaryToHex(swapBytes(hexToBinary(str))); } - -exports.swapHex = swapHex; - function sanitizeBytes(str) { var byteSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8; var padding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : STRING_ZERO; return padLeft(str, calcByteLength(str.length, byteSize), padding); } - -exports.sanitizeBytes = sanitizeBytes; - function padLeft(str, length) { var padding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : STRING_ZERO; return padString(str, length, true, padding); } - -exports.padLeft = padLeft; - function padRight(str, length) { var padding = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : STRING_ZERO; return padString(str, length, false, padding); } - -exports.padRight = padRight; - function removeHexPrefix(hex) { return hex.replace(/^0x/, ""); } - -exports.removeHexPrefix = removeHexPrefix; - function addHexPrefix(hex) { return hex.startsWith("0x") ? hex : "0x".concat(hex); } - -exports.addHexPrefix = addHexPrefix; - function sanitizeHex(hex) { hex = removeHexPrefix(hex); hex = sanitizeBytes(hex, 2); @@ -30726,9 +40506,6 @@ function sanitizeHex(hex) { return hex; } - -exports.sanitizeHex = sanitizeHex; - function removeHexLeadingZeros(hex) { var prefixed = hex.startsWith("0x"); hex = removeHexPrefix(hex); @@ -30736,8 +40513,6 @@ function removeHexLeadingZeros(hex) { return prefixed ? addHexPrefix(hex) : hex; } -exports.removeHexLeadingZeros = removeHexLeadingZeros; - function isUndefined(value) { return typeof value === "undefined"; } @@ -31018,6 +40793,15 @@ var WalletConnectProvider = /*#__PURE__*/function () { return request; }() + }, { + key: "sendAsync", + value: function sendAsync(args, callback) { + this.request(args).then(function (response) { + return callback(null, response); + })["catch"](function (error) { + return callback(error, undefined); + }); + } }, { key: "enable", value: function () { @@ -31183,8 +40967,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "encrypt", function() { return encrypt; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "decrypt", function() { return decrypt; }); /* harmony import */ var _walletconnect_crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @walletconnect/crypto */ "./node_modules/@walletconnect/crypto/dist/esm/browser/index.js"); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/cjs/index.js"); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/esm/index.js"); /* harmony import */ var _walletconnect_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @walletconnect/utils */ "./node_modules/@walletconnect/utils/dist/esm/index.js"); function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } @@ -31812,7 +41595,13 @@ var JsonRpcProvider = /*#__PURE__*/function (_IJsonRpcProvider) { _this = _super.call(this, connection); _this.events = new events__WEBPACK_IMPORTED_MODULE_0__["EventEmitter"](); + _this.hasRegisteredEventListeners = false; _this.connection = _this.setConnection(connection); + + if (_this.connection.connected) { + _this.registerEventListeners(); + } + return _this; } @@ -32020,8 +41809,6 @@ var JsonRpcProvider = /*#__PURE__*/function (_IJsonRpcProvider) { key: "open", value: function () { var _open = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { - var _this3 = this; - var connection, _args6 = arguments; return regeneratorRuntime.wrap(function _callee6$(_context6) { @@ -32057,18 +41844,10 @@ var JsonRpcProvider = /*#__PURE__*/function (_IJsonRpcProvider) { return this.connection.open(); case 11: - this.connection.on("payload", function (payload) { - return _this3.onPayload(payload); - }); - this.connection.on("close", function () { - return _this3.events.emit("disconnect"); - }); - this.connection.on("error", function (error) { - return _this3.events.emit("error", error); - }); + this.registerEventListeners(); this.events.emit("connect"); - case 15: + case 13: case "end": return _context6.stop(); } @@ -32094,9 +41873,6 @@ var JsonRpcProvider = /*#__PURE__*/function (_IJsonRpcProvider) { return this.connection.close(); case 2: - this.events.emit("disconnect"); - - case 3: case "end": return _context7.stop(); } @@ -32110,6 +41886,23 @@ var JsonRpcProvider = /*#__PURE__*/function (_IJsonRpcProvider) { return close; }() + }, { + key: "registerEventListeners", + value: function registerEventListeners() { + var _this3 = this; + + if (this.hasRegisteredEventListeners) return; + this.connection.on("payload", function (payload) { + return _this3.onPayload(payload); + }); + this.connection.on("close", function () { + return _this3.events.emit("disconnect"); + }); + this.connection.on("error", function (error) { + return _this3.events.emit("error", error); + }); + this.hasRegisteredEventListeners = true; + } }]); return JsonRpcProvider; @@ -32794,7 +42587,7 @@ function _catch(body, recover) { } // Asynchronously await a promise and pass the result to a finally continuation -var WALLETCONNECT_LOGO_SVG_URL = "data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='300px' height='185px' viewBox='0 0 300 185' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 49.3 (51167) - http://www.bohemiancoding.com/sketch --%3E %3Ctitle%3EWalletConnect%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cdefs%3E%3C/defs%3E %3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cg id='walletconnect-logo-alt' fill='%233B99FC' fill-rule='nonzero'%3E %3Cpath d='M61.4385429,36.2562612 C110.349767,-11.6319051 189.65053,-11.6319051 238.561752,36.2562612 L244.448297,42.0196786 C246.893858,44.4140867 246.893858,48.2961898 244.448297,50.690599 L224.311602,70.406102 C223.088821,71.6033071 221.106302,71.6033071 219.883521,70.406102 L211.782937,62.4749541 C177.661245,29.0669724 122.339051,29.0669724 88.2173582,62.4749541 L79.542302,70.9685592 C78.3195204,72.1657633 76.337001,72.1657633 75.1142214,70.9685592 L54.9775265,51.2530561 C52.5319653,48.8586469 52.5319653,44.9765439 54.9775265,42.5821357 L61.4385429,36.2562612 Z M280.206339,77.0300061 L298.128036,94.5769031 C300.573585,96.9713 300.573599,100.85338 298.128067,103.247793 L217.317896,182.368927 C214.872352,184.763353 210.907314,184.76338 208.461736,182.368989 C208.461726,182.368979 208.461714,182.368967 208.461704,182.368957 L151.107561,126.214385 C150.496171,125.615783 149.504911,125.615783 148.893521,126.214385 C148.893517,126.214389 148.893514,126.214393 148.89351,126.214396 L91.5405888,182.368927 C89.095052,184.763359 85.1300133,184.763399 82.6844276,182.369014 C82.6844133,182.369 82.684398,182.368986 82.6843827,182.36897 L1.87196327,103.246785 C-0.573596939,100.852377 -0.573596939,96.9702735 1.87196327,94.5758653 L19.7936929,77.028998 C22.2392531,74.6345898 26.2042918,74.6345898 28.6498531,77.028998 L86.0048306,133.184355 C86.6162214,133.782957 87.6074796,133.782957 88.2188704,133.184355 C88.2188796,133.184346 88.2188878,133.184338 88.2188969,133.184331 L145.571,77.028998 C148.016505,74.6345347 151.981544,74.6344449 154.427161,77.028798 C154.427195,77.0288316 154.427229,77.0288653 154.427262,77.028899 L211.782164,133.184331 C212.393554,133.782932 213.384814,133.782932 213.996204,133.184331 L271.350179,77.0300061 C273.79574,74.6355969 277.760778,74.6355969 280.206339,77.0300061 Z' id='WalletConnect'%3E%3C/path%3E %3C/g%3E %3C/g%3E %3C/svg%3E"; +var WALLETCONNECT_LOGO_SVG_URL = "data:image/svg+xml,%3Csvg height='185' viewBox='0 0 300 185' width='300' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='m61.4385429 36.2562612c48.9112241-47.8881663 128.2119871-47.8881663 177.1232091 0l5.886545 5.7634174c2.445561 2.3944081 2.445561 6.2765112 0 8.6709204l-20.136695 19.715503c-1.222781 1.1972051-3.2053 1.1972051-4.428081 0l-8.100584-7.9311479c-34.121692-33.4079817-89.443886-33.4079817-123.5655788 0l-8.6750562 8.4936051c-1.2227816 1.1972041-3.205301 1.1972041-4.4280806 0l-20.1366949-19.7155031c-2.4455612-2.3944092-2.4455612-6.2765122 0-8.6709204zm218.7677961 40.7737449 17.921697 17.546897c2.445549 2.3943969 2.445563 6.2764769.000031 8.6708899l-80.810171 79.121134c-2.445544 2.394426-6.410582 2.394453-8.85616.000062-.00001-.00001-.000022-.000022-.000032-.000032l-57.354143-56.154572c-.61139-.598602-1.60265-.598602-2.21404 0-.000004.000004-.000007.000008-.000011.000011l-57.3529212 56.154531c-2.4455368 2.394432-6.4105755 2.394472-8.8561612.000087-.0000143-.000014-.0000296-.000028-.0000449-.000044l-80.81241943-79.122185c-2.44556021-2.394408-2.44556021-6.2765115 0-8.6709197l17.92172963-17.5468673c2.4455602-2.3944082 6.4105989-2.3944082 8.8561602 0l57.3549775 56.155357c.6113908.598602 1.602649.598602 2.2140398 0 .0000092-.000009.0000174-.000017.0000265-.000024l57.3521031-56.155333c2.445505-2.3944633 6.410544-2.3945531 8.856161-.0002.000034.0000336.000068.0000673.000101.000101l57.354902 56.155432c.61139.598601 1.60265.598601 2.21404 0l57.353975-56.1543249c2.445561-2.3944092 6.410599-2.3944092 8.85616 0z' fill='%233b99fc'/%3E%3C/svg%3E"; var WALLETCONNECT_HEADER_TEXT = "WalletConnect"; var ANIMATION_DURATION = 300; var DEFAULT_BUTTON_COLOR = "rgb(64, 153, 255)"; @@ -32838,7 +42631,7 @@ function ConnectButton(props) { }, props.name); } -var CARET_SVG_URL = "data:image/svg+xml,%3Csvg width='8' height='18' viewBox='0 0 8 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.586301 0.213898C0.150354 0.552968 0.0718197 1.18124 0.41089 1.61719L5.2892 7.88931C5.57007 8.25042 5.57007 8.75608 5.2892 9.11719L0.410889 15.3893C0.071819 15.8253 0.150353 16.4535 0.586301 16.7926C1.02225 17.1317 1.65052 17.0531 1.98959 16.6172L6.86791 10.3451C7.7105 9.26174 7.7105 7.74476 6.86791 6.66143L1.98959 0.38931C1.65052 -0.0466374 1.02225 -0.125172 0.586301 0.213898Z' fill='%233C4252'/%3E %3C/svg%3E"; +var CARET_SVG_URL = "data:image/svg+xml,%3Csvg fill='none' height='18' viewBox='0 0 8 18' width='8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath clip-rule='evenodd' d='m.586301.213898c-.435947.33907-.5144813.967342-.175411 1.403292l4.87831 6.27212c.28087.36111.28087.86677 0 1.22788l-4.878311 6.27211c-.33907.436-.260536 1.0642.175412 1.4033.435949.3391 1.064219.2605 1.403289-.1754l4.87832-6.2721c.84259-1.08336.84259-2.60034 0-3.68367l-4.87832-6.27212c-.33907-.4359474-.96734-.514482-1.403289-.175412z' fill='%233c4252' fill-rule='evenodd'/%3E%3C/svg%3E"; function WalletButton(props) { var color = props.color; @@ -32969,7 +42762,7 @@ function LinkDisplay(props) { }) : React.createElement(WalletIcon, { color: color, href: href, - name: shortName, + name: shortName || name, logo: logo, onClick: handleClickIOS }); @@ -33122,25 +42915,26 @@ function Modal(props) { var _temp = _catch(function () { var url = props.qrcodeModalOptions && props.qrcodeModalOptions.registryUrl ? props.qrcodeModalOptions.registryUrl : browserUtils.getWalletRegistryUrl(); - return Promise.resolve(fetch(url).then(function (x) { - return x.json(); - })).then(function (registry) { - var platform = mobile ? "mobile" : "desktop"; + return Promise.resolve(fetch(url)).then(function (registryResponse) { + return Promise.resolve(registryResponse.json()).then(function (_registryResponse$jso) { + var registry = _registryResponse$jso.listings; + var platform = mobile ? "mobile" : "desktop"; - var _links = browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(registry, platform), whitelist); + var _links = browserUtils.getMobileLinkRegistry(browserUtils.formatMobileRegistry(registry, platform), whitelist); - setLoading(false); - setFetched(true); - setErrorMessage(!_links.length ? props.text.no_supported_wallets : ""); - setLinks(_links); - var hasSingleLink = _links.length === 1; + setLoading(false); + setFetched(true); + setErrorMessage(!_links.length ? props.text.no_supported_wallets : ""); + setLinks(_links); + var hasSingleLink = _links.length === 1; - if (hasSingleLink) { - setSingleLinkHref(browserUtils.formatIOSMobile(props.uri, _links[0])); - setDisplayQRCode(true); - } + if (hasSingleLink) { + setSingleLinkHref(browserUtils.formatIOSMobile(props.uri, _links[0])); + setDisplayQRCode(true); + } - setHasSingleLink(hasSingleLink); + setHasSingleLink(hasSingleLink); + }); }); }, function (e) { setLoading(false); @@ -35428,8 +45222,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "convertNumberToHex", function() { return convertNumberToHex; }); /* harmony import */ var bn_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! bn.js */ "./node_modules/@walletconnect/utils/node_modules/bn.js/lib/bn.js"); /* harmony import */ var bn_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bn_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/cjs/index.js"); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/esm/index.js"); function convertArrayBufferToBuffer(arrBuf) { @@ -35523,8 +45316,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parseTransactionData", function() { return parseTransactionData; }); /* harmony import */ var js_sha3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! js-sha3 */ "./node_modules/js-sha3/src/sha3.js"); /* harmony import */ var js_sha3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_sha3__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/cjs/index.js"); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/esm/index.js"); /* harmony import */ var _encoding__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./encoding */ "./node_modules/@walletconnect/utils/dist/esm/encoding.js"); /* harmony import */ var _misc__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./misc */ "./node_modules/@walletconnect/utils/dist/esm/misc.js"); /* harmony import */ var _validators__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./validators */ "./node_modules/@walletconnect/utils/dist/esm/validators.js"); @@ -35595,7 +45387,7 @@ function parseTransactionData(txData) { var txDataRPC = { from: Object(_misc__WEBPACK_IMPORTED_MODULE_3__["sanitizeHex"])(txData.from), - to: typeof txData.to === "undefined" ? "" : Object(_misc__WEBPACK_IMPORTED_MODULE_3__["sanitizeHex"])(txData.to), + to: typeof txData.to === "undefined" ? undefined : Object(_misc__WEBPACK_IMPORTED_MODULE_3__["sanitizeHex"])(txData.to), gasPrice: typeof txData.gasPrice === "undefined" ? "" : parseHexValues(txData.gasPrice), gas: typeof txData.gas === "undefined" ? typeof txData.gasLimit === "undefined" ? "" : parseHexValues(txData.gasLimit) : parseHexValues(txData.gas), value: typeof txData.value === "undefined" ? "" : parseHexValues(txData.value), @@ -35604,7 +45396,7 @@ function parseTransactionData(txData) { }; var prunable = ["gasPrice", "gas", "value", "nonce"]; Object.keys(txDataRPC).forEach(function (key) { - if (!txDataRPC[key].trim().length && prunable.includes(key)) { + if ((typeof txDataRPC[key] === "undefined" || typeof txDataRPC[key] === "string" && !txDataRPC[key].trim().length) && prunable.includes(key)) { delete txDataRPC[key]; } }); @@ -35617,7 +45409,7 @@ function parseTransactionData(txData) { /*!*************************************************************!*\ !*** ./node_modules/@walletconnect/utils/dist/esm/index.js ***! \*************************************************************/ -/*! exports provided: detectEnv, detectOS, isAndroid, isIOS, isMobile, isNode, isBrowser, getFromWindow, getFromWindowOrThrow, getDocumentOrThrow, getDocument, getNavigatorOrThrow, getNavigator, getLocationOrThrow, getLocation, getCryptoOrThrow, getCrypto, getLocalStorageOrThrow, getLocalStorage, getClientMeta, safeJsonParse, safeJsonStringify, setLocal, getLocal, removeLocal, mobileLinkChoiceKey, formatIOSMobile, saveMobileLinkInfo, getMobileRegistryEntry, getMobileLinkRegistry, getWalletRegistryUrl, getDappRegistryUrl, getAppLogoUrl, formatMobileRegistryEntry, formatMobileRegistry, reservedEvents, signingMethods, stateMethods, infuraNetworks, convertArrayBufferToBuffer, convertArrayBufferToUtf8, convertArrayBufferToHex, convertArrayBufferToNumber, concatArrayBuffers, convertBufferToArrayBuffer, convertBufferToUtf8, convertBufferToHex, convertBufferToNumber, concatBuffers, convertUtf8ToArrayBuffer, convertUtf8ToBuffer, convertUtf8ToHex, convertUtf8ToNumber, convertHexToBuffer, convertHexToArrayBuffer, convertHexToUtf8, convertHexToNumber, convertNumberToBuffer, convertNumberToArrayBuffer, convertNumberToUtf8, convertNumberToHex, toChecksumAddress, isValidAddress, parsePersonalSign, parseTransactionData, sanitizeHex, addHexPrefix, removeHexPrefix, removeHexLeadingZeros, payloadId, uuid, logDeprecationWarning, getInfuraRpcUrl, getRpcUrl, promisify, formatRpcError, isWalletConnectSession, parseWalletConnectUri, getQueryString, appendToQueryString, parseQueryString, formatQueryString, isEmptyString, isEmptyArray, isBuffer, isTypedArray, isArrayBuffer, getType, getEncoding, isHexString, isJsonRpcSubscription, isJsonRpcRequest, isJsonRpcResponseSuccess, isJsonRpcResponseError, isInternalEvent, isReservedEvent, isSilentPayload */ +/*! exports provided: detectEnv, detectOS, isAndroid, isIOS, isMobile, isNode, isBrowser, getFromWindow, getFromWindowOrThrow, getDocumentOrThrow, getDocument, getNavigatorOrThrow, getNavigator, getLocationOrThrow, getLocation, getCryptoOrThrow, getCrypto, getLocalStorageOrThrow, getLocalStorage, getClientMeta, safeJsonParse, safeJsonStringify, setLocal, getLocal, removeLocal, mobileLinkChoiceKey, formatIOSMobile, saveMobileLinkInfo, getMobileRegistryEntry, getMobileLinkRegistry, getWalletRegistryUrl, getDappRegistryUrl, formatMobileRegistryEntry, formatMobileRegistry, reservedEvents, signingMethods, stateMethods, infuraNetworks, convertArrayBufferToBuffer, convertArrayBufferToUtf8, convertArrayBufferToHex, convertArrayBufferToNumber, concatArrayBuffers, convertBufferToArrayBuffer, convertBufferToUtf8, convertBufferToHex, convertBufferToNumber, concatBuffers, convertUtf8ToArrayBuffer, convertUtf8ToBuffer, convertUtf8ToHex, convertUtf8ToNumber, convertHexToBuffer, convertHexToArrayBuffer, convertHexToUtf8, convertHexToNumber, convertNumberToBuffer, convertNumberToArrayBuffer, convertNumberToUtf8, convertNumberToHex, toChecksumAddress, isValidAddress, parsePersonalSign, parseTransactionData, sanitizeHex, addHexPrefix, removeHexPrefix, removeHexLeadingZeros, payloadId, uuid, logDeprecationWarning, getInfuraRpcUrl, getRpcUrl, promisify, formatRpcError, isWalletConnectSession, parseWalletConnectUri, getQueryString, appendToQueryString, parseQueryString, formatQueryString, isEmptyString, isEmptyArray, isBuffer, isTypedArray, isArrayBuffer, getType, getEncoding, isHexString, isJsonRpcSubscription, isJsonRpcRequest, isJsonRpcResponseSuccess, isJsonRpcResponseError, isInternalEvent, isReservedEvent, isSilentPayload */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -35687,8 +45479,6 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDappRegistryUrl", function() { return _walletconnect_browser_utils__WEBPACK_IMPORTED_MODULE_0__["getDappRegistryUrl"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getAppLogoUrl", function() { return _walletconnect_browser_utils__WEBPACK_IMPORTED_MODULE_0__["getAppLogoUrl"]; }); - /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatMobileRegistryEntry", function() { return _walletconnect_browser_utils__WEBPACK_IMPORTED_MODULE_0__["formatMobileRegistryEntry"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "formatMobileRegistry", function() { return _walletconnect_browser_utils__WEBPACK_IMPORTED_MODULE_0__["formatMobileRegistry"]; }); @@ -35855,8 +45645,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "logDeprecationWarning", function() { return logDeprecationWarning; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getInfuraRpcUrl", function() { return getInfuraRpcUrl; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getRpcUrl", function() { return getRpcUrl; }); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/cjs/index.js"); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_walletconnect_encoding__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/esm/index.js"); /* harmony import */ var _walletconnect_jsonrpc_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @walletconnect/jsonrpc-utils */ "./node_modules/@walletconnect/jsonrpc-utils/dist/esm/index.js"); /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/@walletconnect/utils/dist/esm/constants.js"); @@ -36124,8 +45913,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInternalEvent", function() { return isInternalEvent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isReservedEvent", function() { return isReservedEvent; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isSilentPayload", function() { return isSilentPayload; }); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/cjs/index.js"); -/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_walletconnect_encoding__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _walletconnect_encoding__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @walletconnect/encoding */ "./node_modules/@walletconnect/encoding/dist/esm/index.js"); /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ "./node_modules/@walletconnect/utils/dist/esm/constants.js"); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } @@ -36248,7 +46036,7 @@ function isSilentPayload(request) { var Buffer; try { - Buffer = __webpack_require__(/*! buffer */ 1).Buffer; + Buffer = __webpack_require__(/*! buffer */ 2).Buffer; } catch (e) {} BN.isBN = function isBN(num) { @@ -40671,6 +50459,46 @@ exports.getWindowMetadata = getWindowMetadata; /***/ }), +/***/ "./node_modules/babel-polyfill/lib/index.js": +/*!**************************************************!*\ + !*** ./node_modules/babel-polyfill/lib/index.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) { + +__webpack_require__(/*! core-js/shim */ "./node_modules/core-js/shim.js"); + +__webpack_require__(/*! regenerator-runtime/runtime */ "./node_modules/regenerator-runtime/runtime.js"); + +__webpack_require__(/*! core-js/fn/regexp/escape */ "./node_modules/core-js/fn/regexp/escape.js"); + +if (global._babelPolyfill) { + throw new Error("only one instance of babel-polyfill is allowed"); +} + +global._babelPolyfill = true; +var DEFINE_PROPERTY = "defineProperty"; + +function define(O, key, value) { + O[key] || Object[DEFINE_PROPERTY](O, key, { + writable: true, + configurable: true, + value: value + }); +} + +define(String.prototype, "padLeft", "".padStart); +define(String.prototype, "padRight", "".padEnd); +"pop,reverse,shift,keys,values,entries,indexOf,every,some,forEach,map,filter,find,findIndex,includes,join,slice,concat,push,splice,unshift,sort,lastIndexOf,reduce,reduceRight,copyWithin,fill".split(",").forEach(function (key) { + [][key] && define(Array, key, Function.call.bind([][key])); +}); +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"))) + +/***/ }), + /***/ "./node_modules/base64-js/index.js": /*!*****************************************!*\ !*** ./node_modules/base64-js/index.js ***! @@ -41052,7 +50880,7 @@ module.exports = { if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') { Buffer = window.Buffer; } else { - Buffer = __webpack_require__(/*! buffer */ 0).Buffer; + Buffer = __webpack_require__(/*! buffer */ 1).Buffer; } } catch (e) {} @@ -46476,6 +56304,11734 @@ module.exports = copy; /***/ }), +/***/ "./node_modules/core-js/fn/regexp/escape.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/fn/regexp/escape.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ../../modules/core.regexp.escape */ "./node_modules/core-js/modules/core.regexp.escape.js"); + +module.exports = __webpack_require__(/*! ../../modules/_core */ "./node_modules/core-js/modules/_core.js").RegExp.escape; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_a-function.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_a-function.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (it) { + if (typeof it != 'function') throw TypeError(it + ' is not a function!'); + return it; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_a-number-value.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/_a-number-value.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); + +module.exports = function (it, msg) { + if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg); + return +it; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_add-to-unscopables.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/_add-to-unscopables.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 22.1.3.31 Array.prototype[@@unscopables] +var UNSCOPABLES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('unscopables'); + +var ArrayProto = Array.prototype; +if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(ArrayProto, UNSCOPABLES, {}); + +module.exports = function (key) { + ArrayProto[UNSCOPABLES][key] = true; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_advance-string-index.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/_advance-string-index.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var at = __webpack_require__(/*! ./_string-at */ "./node_modules/core-js/modules/_string-at.js")(true); // `AdvanceStringIndex` abstract operation +// https://tc39.github.io/ecma262/#sec-advancestringindex + + +module.exports = function (S, index, unicode) { + return index + (unicode ? at(S, index).length : 1); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_an-instance.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_an-instance.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (it, Constructor, name, forbiddenField) { + if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { + throw TypeError(name + ': incorrect invocation!'); + } + + return it; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_an-object.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_an-object.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +module.exports = function (it) { + if (!isObject(it)) throw TypeError(it + ' is not an object!'); + return it; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_array-copy-within.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/_array-copy-within.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) + + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +module.exports = [].copyWithin || function copyWithin(target +/* = 0 */ +, start +/* = 0, end = @length */ +) { + var O = toObject(this); + var len = toLength(O.length); + var to = toAbsoluteIndex(target, len); + var from = toAbsoluteIndex(start, len); + var end = arguments.length > 2 ? arguments[2] : undefined; + var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to); + var inc = 1; + + if (from < to && to < from + count) { + inc = -1; + from += count - 1; + to += count - 1; + } + + while (count-- > 0) { + if (from in O) O[to] = O[from];else delete O[to]; + to += inc; + from += inc; + } + + return O; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_array-fill.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_array-fill.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) + + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +module.exports = function fill(value +/* , start = 0, end = @length */ +) { + var O = toObject(this); + var length = toLength(O.length); + var aLen = arguments.length; + var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length); + var end = aLen > 2 ? arguments[2] : undefined; + var endPos = end === undefined ? length : toAbsoluteIndex(end, length); + + while (endPos > index) { + O[index++] = value; + } + + return O; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_array-from-iterable.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/_array-from-iterable.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); + +module.exports = function (iter, ITERATOR) { + var result = []; + forOf(iter, false, result.push, result, ITERATOR); + return result; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_array-includes.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/_array-includes.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// false -> Array#indexOf +// true -> Array#includes +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); + +module.exports = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare + + if (IS_INCLUDES && el != el) while (length > index) { + value = O[index++]; // eslint-disable-next-line no-self-compare + + if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not + } else for (; length > index; index++) { + if (IS_INCLUDES || index in O) { + if (O[index] === el) return IS_INCLUDES || index || 0; + } + } + return !IS_INCLUDES && -1; + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_array-methods.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/_array-methods.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 0 -> Array#forEach +// 1 -> Array#map +// 2 -> Array#filter +// 3 -> Array#some +// 4 -> Array#every +// 5 -> Array#find +// 6 -> Array#findIndex +var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + +var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var asc = __webpack_require__(/*! ./_array-species-create */ "./node_modules/core-js/modules/_array-species-create.js"); + +module.exports = function (TYPE, $create) { + var IS_MAP = TYPE == 1; + var IS_FILTER = TYPE == 2; + var IS_SOME = TYPE == 3; + var IS_EVERY = TYPE == 4; + var IS_FIND_INDEX = TYPE == 6; + var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; + var create = $create || asc; + return function ($this, callbackfn, that) { + var O = toObject($this); + var self = IObject(O); + var f = ctx(callbackfn, that, 3); + var length = toLength(self.length); + var index = 0; + var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; + var val, res; + + for (; length > index; index++) { + if (NO_HOLES || index in self) { + val = self[index]; + res = f(val, index, O); + + if (TYPE) { + if (IS_MAP) result[index] = res; // map + else if (res) switch (TYPE) { + case 3: + return true; + // some + + case 5: + return val; + // find + + case 6: + return index; + // findIndex + + case 2: + result.push(val); + // filter + } else if (IS_EVERY) return false; // every + } + } + } + + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_array-reduce.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/_array-reduce.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +module.exports = function (that, callbackfn, aLen, memo, isRight) { + aFunction(callbackfn); + var O = toObject(that); + var self = IObject(O); + var length = toLength(O.length); + var index = isRight ? length - 1 : 0; + var i = isRight ? -1 : 1; + if (aLen < 2) for (;;) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + + index += i; + + if (isRight ? index < 0 : length <= index) { + throw TypeError('Reduce of empty array with no initial value'); + } + } + + for (; isRight ? index >= 0 : length > index; index += i) { + if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + } + + return memo; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_array-species-constructor.js": +/*!********************************************************************!*\ + !*** ./node_modules/core-js/modules/_array-species-constructor.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js"); + +var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species'); + +module.exports = function (original) { + var C; + + if (isArray(original)) { + C = original.constructor; // cross-realm fallback + + if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; + + if (isObject(C)) { + C = C[SPECIES]; + if (C === null) C = undefined; + } + } + + return C === undefined ? Array : C; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_array-species-create.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/_array-species-create.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 9.4.2.3 ArraySpeciesCreate(originalArray, length) +var speciesConstructor = __webpack_require__(/*! ./_array-species-constructor */ "./node_modules/core-js/modules/_array-species-constructor.js"); + +module.exports = function (original, length) { + return new (speciesConstructor(original))(length); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_bind.js": +/*!***********************************************!*\ + !*** ./node_modules/core-js/modules/_bind.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var invoke = __webpack_require__(/*! ./_invoke */ "./node_modules/core-js/modules/_invoke.js"); + +var arraySlice = [].slice; +var factories = {}; + +var construct = function construct(F, len, args) { + if (!(len in factories)) { + for (var n = [], i = 0; i < len; i++) { + n[i] = 'a[' + i + ']'; + } // eslint-disable-next-line no-new-func + + + factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')'); + } + + return factories[len](F, args); +}; + +module.exports = Function.bind || function bind(that +/* , ...args */ +) { + var fn = aFunction(this); + var partArgs = arraySlice.call(arguments, 1); + + var bound = function + /* args... */ + bound() { + var args = partArgs.concat(arraySlice.call(arguments)); + return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that); + }; + + if (isObject(fn.prototype)) bound.prototype = fn.prototype; + return bound; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_classof.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/modules/_classof.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// getting tag from 19.1.3.6 Object.prototype.toString() +var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); + +var TAG = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag'); // ES3 wrong here + + +var ARG = cof(function () { + return arguments; +}()) == 'Arguments'; // fallback for IE11 Script Access Denied error + +var tryGet = function tryGet(it, key) { + try { + return it[key]; + } catch (e) { + /* empty */ + } +}; + +module.exports = function (it) { + var O, T, B; + return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case + : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T // builtinTag case + : ARG ? cof(O) // ES3 arguments fallback + : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_cof.js": +/*!**********************************************!*\ + !*** ./node_modules/core-js/modules/_cof.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var toString = {}.toString; + +module.exports = function (it) { + return toString.call(it).slice(8, -1); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_collection-strong.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/_collection-strong.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; + +var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); + +var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); + +var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + +var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); + +var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); + +var $iterDefine = __webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js"); + +var step = __webpack_require__(/*! ./_iter-step */ "./node_modules/core-js/modules/_iter-step.js"); + +var setSpecies = __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js"); + +var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); + +var fastKey = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").fastKey; + +var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); + +var SIZE = DESCRIPTORS ? '_s' : 'size'; + +var getEntry = function getEntry(that, key) { + // fast case + var index = fastKey(key); + var entry; + if (index !== 'F') return that._i[index]; // frozen object case + + for (entry = that._f; entry; entry = entry.n) { + if (entry.k == key) return entry; + } +}; + +module.exports = { + getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; // collection type + + that._i = create(null); // index + + that._f = undefined; // first entry + + that._l = undefined; // last entry + + that[SIZE] = 0; // size + + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.1.3.1 Map.prototype.clear() + // 23.2.3.2 Set.prototype.clear() + clear: function clear() { + for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) { + entry.r = true; + if (entry.p) entry.p = entry.p.n = undefined; + delete data[entry.i]; + } + + that._f = that._l = undefined; + that[SIZE] = 0; + }, + // 23.1.3.3 Map.prototype.delete(key) + // 23.2.3.4 Set.prototype.delete(value) + 'delete': function _delete(key) { + var that = validate(this, NAME); + var entry = getEntry(that, key); + + if (entry) { + var next = entry.n; + var prev = entry.p; + delete that._i[entry.i]; + entry.r = true; + if (prev) prev.n = next; + if (next) next.p = prev; + if (that._f == entry) that._f = next; + if (that._l == entry) that._l = prev; + that[SIZE]--; + } + + return !!entry; + }, + // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined) + // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined) + forEach: function forEach(callbackfn + /* , that = undefined */ + ) { + validate(this, NAME); + var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3); + var entry; + + while (entry = entry ? entry.n : this._f) { + f(entry.v, entry.k, this); // revert to the last existing entry + + while (entry && entry.r) { + entry = entry.p; + } + } + }, + // 23.1.3.7 Map.prototype.has(key) + // 23.2.3.7 Set.prototype.has(value) + has: function has(key) { + return !!getEntry(validate(this, NAME), key); + } + }); + if (DESCRIPTORS) dP(C.prototype, 'size', { + get: function get() { + return validate(this, NAME)[SIZE]; + } + }); + return C; + }, + def: function def(that, key, value) { + var entry = getEntry(that, key); + var prev, index; // change existing entry + + if (entry) { + entry.v = value; // create new entry + } else { + that._l = entry = { + i: index = fastKey(key, true), + // <- index + k: key, + // <- key + v: value, + // <- value + p: prev = that._l, + // <- previous entry + n: undefined, + // <- next entry + r: false // <- removed + + }; + if (!that._f) that._f = entry; + if (prev) prev.n = entry; + that[SIZE]++; // add to index + + if (index !== 'F') that._i[index] = entry; + } + + return that; + }, + getEntry: getEntry, + setStrong: function setStrong(C, NAME, IS_MAP) { + // add .keys, .values, .entries, [@@iterator] + // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11 + $iterDefine(C, NAME, function (iterated, kind) { + this._t = validate(iterated, NAME); // target + + this._k = kind; // kind + + this._l = undefined; // previous + }, function () { + var that = this; + var kind = that._k; + var entry = that._l; // revert to the last existing entry + + while (entry && entry.r) { + entry = entry.p; + } // get next entry + + + if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) { + // or finish the iteration + that._t = undefined; + return step(1); + } // return step by kind + + + if (kind == 'keys') return step(0, entry.k); + if (kind == 'values') return step(0, entry.v); + return step(0, [entry.k, entry.v]); + }, IS_MAP ? 'entries' : 'values', !IS_MAP, true); // add [@@species], 23.1.2.2, 23.2.2.2 + + setSpecies(NAME); + } +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_collection-to-json.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/_collection-to-json.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); + +var from = __webpack_require__(/*! ./_array-from-iterable */ "./node_modules/core-js/modules/_array-from-iterable.js"); + +module.exports = function (NAME) { + return function toJSON() { + if (classof(this) != NAME) throw TypeError(NAME + "#toJSON isn't generic"); + return from(this); + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_collection-weak.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/_collection-weak.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); + +var getWeak = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").getWeak; + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); + +var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); + +var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js"); + +var $has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); + +var arrayFind = createArrayMethod(5); +var arrayFindIndex = createArrayMethod(6); +var id = 0; // fallback for uncaught frozen keys + +var uncaughtFrozenStore = function uncaughtFrozenStore(that) { + return that._l || (that._l = new UncaughtFrozenStore()); +}; + +var UncaughtFrozenStore = function UncaughtFrozenStore() { + this.a = []; +}; + +var findUncaughtFrozen = function findUncaughtFrozen(store, key) { + return arrayFind(store.a, function (it) { + return it[0] === key; + }); +}; + +UncaughtFrozenStore.prototype = { + get: function get(key) { + var entry = findUncaughtFrozen(this, key); + if (entry) return entry[1]; + }, + has: function has(key) { + return !!findUncaughtFrozen(this, key); + }, + set: function set(key, value) { + var entry = findUncaughtFrozen(this, key); + if (entry) entry[1] = value;else this.a.push([key, value]); + }, + 'delete': function _delete(key) { + var index = arrayFindIndex(this.a, function (it) { + return it[0] === key; + }); + if (~index) this.a.splice(index, 1); + return !!~index; + } +}; +module.exports = { + getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { + var C = wrapper(function (that, iterable) { + anInstance(that, C, NAME, '_i'); + that._t = NAME; // collection type + + that._i = id++; // collection id + + that._l = undefined; // leak store for uncaught frozen objects + + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + }); + redefineAll(C.prototype, { + // 23.3.3.2 WeakMap.prototype.delete(key) + // 23.4.3.3 WeakSet.prototype.delete(value) + 'delete': function _delete(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); + return data && $has(data, this._i) && delete data[this._i]; + }, + // 23.3.3.4 WeakMap.prototype.has(key) + // 23.4.3.4 WeakSet.prototype.has(value) + has: function has(key) { + if (!isObject(key)) return false; + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); + return data && $has(data, this._i); + } + }); + return C; + }, + def: function def(that, key, value) { + var data = getWeak(anObject(key), true); + if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; + return that; + }, + ufstore: uncaughtFrozenStore +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_collection.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_collection.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); + +var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); + +var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js"); + +var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); + +var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var $iterDetect = __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js"); + +var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); + +var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js"); + +module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { + var Base = global[NAME]; + var C = Base; + var ADDER = IS_MAP ? 'set' : 'add'; + var proto = C && C.prototype; + var O = {}; + + var fixMethod = function fixMethod(KEY) { + var fn = proto[KEY]; + redefine(proto, KEY, KEY == 'delete' ? function (a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'has' ? function has(a) { + return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'get' ? function get(a) { + return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); + } : KEY == 'add' ? function add(a) { + fn.call(this, a === 0 ? 0 : a); + return this; + } : function set(a, b) { + fn.call(this, a === 0 ? 0 : a, b); + return this; + }); + }; + + if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { + new C().entries().next(); + }))) { + // create collection constructor + C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); + redefineAll(C.prototype, methods); + meta.NEED = true; + } else { + var instance = new C(); // early implementations not supports chaining + + var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false + + var THROWS_ON_PRIMITIVES = fails(function () { + instance.has(1); + }); // most early implementations doesn't supports iterables, most modern - not close it correctly + + var ACCEPT_ITERABLES = $iterDetect(function (iter) { + new C(iter); + }); // eslint-disable-line no-new + // for early implementations -0 and +0 not the same + + var BUGGY_ZERO = !IS_WEAK && fails(function () { + // V8 ~ Chromium 42- fails only with 5+ elements + var $instance = new C(); + var index = 5; + + while (index--) { + $instance[ADDER](index, index); + } + + return !$instance.has(-0); + }); + + if (!ACCEPT_ITERABLES) { + C = wrapper(function (target, iterable) { + anInstance(target, C, NAME); + var that = inheritIfRequired(new Base(), target, C); + if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); + return that; + }); + C.prototype = proto; + proto.constructor = C; + } + + if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { + fixMethod('delete'); + fixMethod('has'); + IS_MAP && fixMethod('get'); + } + + if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); // weak collections should not contains .clear method + + if (IS_WEAK && proto.clear) delete proto.clear; + } + + setToStringTag(C, NAME); + O[NAME] = C; + $export($export.G + $export.W + $export.F * (C != Base), O); + if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); + return C; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_core.js": +/*!***********************************************!*\ + !*** ./node_modules/core-js/modules/_core.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var core = module.exports = { + version: '2.6.12' +}; +if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef + +/***/ }), + +/***/ "./node_modules/core-js/modules/_create-property.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/_create-property.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $defineProperty = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); + +var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); + +module.exports = function (object, index, value) { + if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_ctx.js": +/*!**********************************************!*\ + !*** ./node_modules/core-js/modules/_ctx.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// optional / simple context binding +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +module.exports = function (fn, that, length) { + aFunction(fn); + if (that === undefined) return fn; + + switch (length) { + case 1: + return function (a) { + return fn.call(that, a); + }; + + case 2: + return function (a, b) { + return fn.call(that, a, b); + }; + + case 3: + return function (a, b, c) { + return fn.call(that, a, b, c); + }; + } + + return function + /* ...args */ + () { + return fn.apply(that, arguments); + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_date-to-iso-string.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/_date-to-iso-string.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var getTime = Date.prototype.getTime; +var $toISOString = Date.prototype.toISOString; + +var lz = function lz(num) { + return num > 9 ? num : '0' + num; +}; // PhantomJS / old WebKit has a broken implementations + + +module.exports = fails(function () { + return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z'; +}) || !fails(function () { + $toISOString.call(new Date(NaN)); +}) ? function toISOString() { + if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value'); + var d = this; + var y = d.getUTCFullYear(); + var m = d.getUTCMilliseconds(); + var s = y < 0 ? '-' : y > 9999 ? '+' : ''; + return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) + '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) + 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) + ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z'; +} : $toISOString; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_date-to-primitive.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/_date-to-primitive.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); + +var NUMBER = 'number'; + +module.exports = function (hint) { + if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint'); + return toPrimitive(anObject(this), hint != NUMBER); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_defined.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/modules/_defined.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// 7.2.1 RequireObjectCoercible(argument) +module.exports = function (it) { + if (it == undefined) throw TypeError("Can't call method on " + it); + return it; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_descriptors.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_descriptors.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Thank's IE8 for his funny defineProperty +module.exports = !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + return Object.defineProperty({}, 'a', { + get: function get() { + return 7; + } + }).a != 7; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/_dom-create.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_dom-create.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var document = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").document; // typeof document.createElement is 'object' in old IE + + +var is = isObject(document) && isObject(document.createElement); + +module.exports = function (it) { + return is ? document.createElement(it) : {}; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_enum-bug-keys.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/_enum-bug-keys.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// IE 8- don't enum bug keys +module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); + +/***/ }), + +/***/ "./node_modules/core-js/modules/_enum-keys.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_enum-keys.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// all enumerable object keys, includes symbols +var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); + +var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js"); + +var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js"); + +module.exports = function (it) { + var result = getKeys(it); + var getSymbols = gOPS.f; + + if (getSymbols) { + var symbols = getSymbols(it); + var isEnum = pIE.f; + var i = 0; + var key; + + while (symbols.length > i) { + if (isEnum.call(it, key = symbols[i++])) result.push(key); + } + } + + return result; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_export.js": +/*!*************************************************!*\ + !*** ./node_modules/core-js/modules/_export.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); + +var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); + +var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); + +var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + +var PROTOTYPE = 'prototype'; + +var $export = function $export(type, name, source) { + var IS_FORCED = type & $export.F; + var IS_GLOBAL = type & $export.G; + var IS_STATIC = type & $export.S; + var IS_PROTO = type & $export.P; + var IS_BIND = type & $export.B; + var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; + var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); + var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); + var key, own, out, exp; + if (IS_GLOBAL) source = name; + + for (key in source) { + // contains in native + own = !IS_FORCED && target && target[key] !== undefined; // export native or passed + + out = (own ? target : source)[key]; // bind timers to global for call from export context + + exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // extend global + + if (target) redefine(target, key, out, type & $export.U); // export + + if (exports[key] != out) hide(exports, key, exp); + if (IS_PROTO && expProto[key] != out) expProto[key] = out; + } +}; + +global.core = core; // type bitmap + +$export.F = 1; // forced + +$export.G = 2; // global + +$export.S = 4; // static + +$export.P = 8; // proto + +$export.B = 16; // bind + +$export.W = 32; // wrap + +$export.U = 64; // safe + +$export.R = 128; // real proto method for `library` + +module.exports = $export; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_fails-is-regexp.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/_fails-is-regexp.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var MATCH = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('match'); + +module.exports = function (KEY) { + var re = /./; + + try { + '/./'[KEY](re); + } catch (e) { + try { + re[MATCH] = false; + return !'/./'[KEY](re); + } catch (f) { + /* empty */ + } + } + + return true; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_fails.js": +/*!************************************************!*\ + !*** ./node_modules/core-js/modules/_fails.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return !!exec(); + } catch (e) { + return true; + } +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_fix-re-wks.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_fix-re-wks.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +__webpack_require__(/*! ./es6.regexp.exec */ "./node_modules/core-js/modules/es6.regexp.exec.js"); + +var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); + +var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); + +var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); + +var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "./node_modules/core-js/modules/_regexp-exec.js"); + +var SPECIES = wks('species'); +var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { + // #replace needs built-in support for named groups. + // #match works fine because it just return the exec results, even if it has + // a "grops" property. + var re = /./; + + re.exec = function () { + var result = []; + result.groups = { + a: '7' + }; + return result; + }; + + return ''.replace(re, '$') !== '7'; +}); + +var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = function () { + // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec + var re = /(?:)/; + var originalExec = re.exec; + + re.exec = function () { + return originalExec.apply(this, arguments); + }; + + var result = 'ab'.split(re); + return result.length === 2 && result[0] === 'a' && result[1] === 'b'; +}(); + +module.exports = function (KEY, length, exec) { + var SYMBOL = wks(KEY); + var DELEGATES_TO_SYMBOL = !fails(function () { + // String methods call symbol-named RegEp methods + var O = {}; + + O[SYMBOL] = function () { + return 7; + }; + + return ''[KEY](O) != 7; + }); + var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () { + // Symbol-named RegExp methods call .exec + var execCalled = false; + var re = /a/; + + re.exec = function () { + execCalled = true; + return null; + }; + + if (KEY === 'split') { + // RegExp[@@split] doesn't call the regex's exec method, but first creates + // a new one. We need to return the patched regex when creating the new one. + re.constructor = {}; + + re.constructor[SPECIES] = function () { + return re; + }; + } + + re[SYMBOL](''); + return !execCalled; + }) : undefined; + + if (!DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS || KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) { + var nativeRegExpMethod = /./[SYMBOL]; + var fns = exec(defined, SYMBOL, ''[KEY], function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) { + if (regexp.exec === regexpExec) { + if (DELEGATES_TO_SYMBOL && !forceStringMethod) { + // The native String method already delegates to @@method (this + // polyfilled function), leasing to infinite recursion. + // We avoid it by directly calling the native @@method method. + return { + done: true, + value: nativeRegExpMethod.call(regexp, str, arg2) + }; + } + + return { + done: true, + value: nativeMethod.call(str, regexp, arg2) + }; + } + + return { + done: false + }; + }); + var strfn = fns[0]; + var rxfn = fns[1]; + redefine(String.prototype, KEY, strfn); + hide(RegExp.prototype, SYMBOL, length == 2 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) + // 21.2.5.11 RegExp.prototype[@@split](string, limit) + ? function (string, arg) { + return rxfn.call(string, this, arg); + } // 21.2.5.6 RegExp.prototype[@@match](string) + // 21.2.5.9 RegExp.prototype[@@search](string) + : function (string) { + return rxfn.call(string, this); + }); + } +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_flags.js": +/*!************************************************!*\ + !*** ./node_modules/core-js/modules/_flags.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 21.2.5.3 get RegExp.prototype.flags + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +module.exports = function () { + var that = anObject(this); + var result = ''; + if (that.global) result += 'g'; + if (that.ignoreCase) result += 'i'; + if (that.multiline) result += 'm'; + if (that.unicode) result += 'u'; + if (that.sticky) result += 'y'; + return result; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_flatten-into-array.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/_flatten-into-array.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray + +var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + +var IS_CONCAT_SPREADABLE = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('isConcatSpreadable'); + +function flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) { + var targetIndex = start; + var sourceIndex = 0; + var mapFn = mapper ? ctx(mapper, thisArg, 3) : false; + var element, spreadable; + + while (sourceIndex < sourceLen) { + if (sourceIndex in source) { + element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex]; + spreadable = false; + + if (isObject(element)) { + spreadable = element[IS_CONCAT_SPREADABLE]; + spreadable = spreadable !== undefined ? !!spreadable : isArray(element); + } + + if (spreadable && depth > 0) { + targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1; + } else { + if (targetIndex >= 0x1fffffffffffff) throw TypeError(); + target[targetIndex] = element; + } + + targetIndex++; + } + + sourceIndex++; + } + + return targetIndex; +} + +module.exports = flattenIntoArray; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_for-of.js": +/*!*************************************************!*\ + !*** ./node_modules/core-js/modules/_for-of.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + +var call = __webpack_require__(/*! ./_iter-call */ "./node_modules/core-js/modules/_iter-call.js"); + +var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js"); + +var BREAK = {}; +var RETURN = {}; + +var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { + var iterFn = ITERATOR ? function () { + return iterable; + } : getIterFn(iterable); + var f = ctx(fn, that, entries ? 2 : 1); + var index = 0; + var length, step, iterator, result; + if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); // fast case for arrays with default iterator + + if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { + result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); + if (result === BREAK || result === RETURN) return result; + } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { + result = call(iterator, f, step.value, entries); + if (result === BREAK || result === RETURN) return result; + } +}; + +exports.BREAK = BREAK; +exports.RETURN = RETURN; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_function-to-string.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/_function-to-string.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('native-function-to-string', Function.toString); + +/***/ }), + +/***/ "./node_modules/core-js/modules/_global.js": +/*!*************************************************!*\ + !*** ./node_modules/core-js/modules/_global.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 +var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func +: Function('return this')(); +if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef + +/***/ }), + +/***/ "./node_modules/core-js/modules/_has.js": +/*!**********************************************!*\ + !*** ./node_modules/core-js/modules/_has.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var hasOwnProperty = {}.hasOwnProperty; + +module.exports = function (it, key) { + return hasOwnProperty.call(it, key); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_hide.js": +/*!***********************************************!*\ + !*** ./node_modules/core-js/modules/_hide.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); + +var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); + +module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? function (object, key, value) { + return dP.f(object, key, createDesc(1, value)); +} : function (object, key, value) { + object[key] = value; + return object; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_html.js": +/*!***********************************************!*\ + !*** ./node_modules/core-js/modules/_html.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var document = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").document; + +module.exports = document && document.documentElement; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_ie8-dom-define.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/_ie8-dom-define.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +module.exports = !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + return Object.defineProperty(__webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js")('div'), 'a', { + get: function get() { + return 7; + } + }).a != 7; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/_inherit-if-required.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/_inherit-if-required.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var setPrototypeOf = __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js").set; + +module.exports = function (that, target, C) { + var S = target.constructor; + var P; + + if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { + setPrototypeOf(that, P); + } + + return that; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_invoke.js": +/*!*************************************************!*\ + !*** ./node_modules/core-js/modules/_invoke.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// fast apply, http://jsperf.lnkit.com/fast-apply/5 +module.exports = function (fn, args, that) { + var un = that === undefined; + + switch (args.length) { + case 0: + return un ? fn() : fn.call(that); + + case 1: + return un ? fn(args[0]) : fn.call(that, args[0]); + + case 2: + return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); + + case 3: + return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); + + case 4: + return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); + } + + return fn.apply(that, args); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_iobject.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/modules/_iobject.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// fallback for non-array-like ES3 and non-enumerable old V8 strings +var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); // eslint-disable-next-line no-prototype-builtins + + +module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { + return cof(it) == 'String' ? it.split('') : Object(it); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_is-array-iter.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/_is-array-iter.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// check on default Array iterator +var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); + +var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); + +var ArrayProto = Array.prototype; + +module.exports = function (it) { + return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_is-array.js": +/*!***************************************************!*\ + !*** ./node_modules/core-js/modules/_is-array.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.2.2 IsArray(argument) +var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); + +module.exports = Array.isArray || function isArray(arg) { + return cof(arg) == 'Array'; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_is-integer.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_is-integer.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.3 Number.isInteger(number) +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var floor = Math.floor; + +module.exports = function isInteger(it) { + return !isObject(it) && isFinite(it) && floor(it) === it; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_is-object.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_is-object.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +module.exports = function (it) { + return _typeof(it) === 'object' ? it !== null : typeof it === 'function'; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_is-regexp.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_is-regexp.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.2.8 IsRegExp(argument) +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); + +var MATCH = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('match'); + +module.exports = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_iter-call.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_iter-call.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// call something on iterator step with safe closing on error +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +module.exports = function (iterator, fn, value, entries) { + try { + return entries ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion) + } catch (e) { + var ret = iterator['return']; + if (ret !== undefined) anObject(ret.call(iterator)); + throw e; + } +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_iter-create.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_iter-create.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); + +var descriptor = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); + +var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); + +var IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() + +__webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(IteratorPrototype, __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'), function () { + return this; +}); + +module.exports = function (Constructor, NAME, next) { + Constructor.prototype = create(IteratorPrototype, { + next: descriptor(1, next) + }); + setToStringTag(Constructor, NAME + ' Iterator'); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_iter-define.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_iter-define.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); + +var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); + +var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); + +var $iterCreate = __webpack_require__(/*! ./_iter-create */ "./node_modules/core-js/modules/_iter-create.js"); + +var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); + +var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); + +var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` + +var FF_ITERATOR = '@@iterator'; +var KEYS = 'keys'; +var VALUES = 'values'; + +var returnThis = function returnThis() { + return this; +}; + +module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { + $iterCreate(Constructor, NAME, next); + + var getMethod = function getMethod(kind) { + if (!BUGGY && kind in proto) return proto[kind]; + + switch (kind) { + case KEYS: + return function keys() { + return new Constructor(this, kind); + }; + + case VALUES: + return function values() { + return new Constructor(this, kind); + }; + } + + return function entries() { + return new Constructor(this, kind); + }; + }; + + var TAG = NAME + ' Iterator'; + var DEF_VALUES = DEFAULT == VALUES; + var VALUES_BUG = false; + var proto = Base.prototype; + var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; + var $default = $native || getMethod(DEFAULT); + var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; + var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; + var methods, key, IteratorPrototype; // Fix native + + if ($anyNative) { + IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); + + if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { + // Set @@toStringTag to native iterators + setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines + + if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); + } + } // fix Array#{values, @@iterator}.name in V8 / FF + + + if (DEF_VALUES && $native && $native.name !== VALUES) { + VALUES_BUG = true; + + $default = function values() { + return $native.call(this); + }; + } // Define iterator + + + if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { + hide(proto, ITERATOR, $default); + } // Plug for library + + + Iterators[NAME] = $default; + Iterators[TAG] = returnThis; + + if (DEFAULT) { + methods = { + values: DEF_VALUES ? $default : getMethod(VALUES), + keys: IS_SET ? $default : getMethod(KEYS), + entries: $entries + }; + if (FORCED) for (key in methods) { + if (!(key in proto)) redefine(proto, key, methods[key]); + } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); + } + + return methods; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_iter-detect.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_iter-detect.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); + +var SAFE_CLOSING = false; + +try { + var riter = [7][ITERATOR](); + + riter['return'] = function () { + SAFE_CLOSING = true; + }; // eslint-disable-next-line no-throw-literal + + + Array.from(riter, function () { + throw 2; + }); +} catch (e) { + /* empty */ +} + +module.exports = function (exec, skipClosing) { + if (!skipClosing && !SAFE_CLOSING) return false; + var safe = false; + + try { + var arr = [7]; + var iter = arr[ITERATOR](); + + iter.next = function () { + return { + done: safe = true + }; + }; + + arr[ITERATOR] = function () { + return iter; + }; + + exec(arr); + } catch (e) { + /* empty */ + } + + return safe; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_iter-step.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_iter-step.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (done, value) { + return { + value: value, + done: !!done + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_iterators.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_iterators.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = {}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_library.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/modules/_library.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = false; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_math-expm1.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_math-expm1.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// 20.2.2.14 Math.expm1(x) +var $expm1 = Math.expm1; +module.exports = !$expm1 // Old FF bug +|| $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168 // Tor Browser bug +|| $expm1(-2e-17) != -2e-17 ? function expm1(x) { + return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1; +} : $expm1; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_math-fround.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_math-fround.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.16 Math.fround(x) +var sign = __webpack_require__(/*! ./_math-sign */ "./node_modules/core-js/modules/_math-sign.js"); + +var pow = Math.pow; +var EPSILON = pow(2, -52); +var EPSILON32 = pow(2, -23); +var MAX32 = pow(2, 127) * (2 - EPSILON32); +var MIN32 = pow(2, -126); + +var roundTiesToEven = function roundTiesToEven(n) { + return n + 1 / EPSILON - 1 / EPSILON; +}; + +module.exports = Math.fround || function fround(x) { + var $abs = Math.abs(x); + var $sign = sign(x); + var a, result; + if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32; + a = (1 + EPSILON32 / EPSILON) * $abs; + result = a - (a - $abs); // eslint-disable-next-line no-self-compare + + if (result > MAX32 || result != result) return $sign * Infinity; + return $sign * result; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_math-log1p.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_math-log1p.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// 20.2.2.20 Math.log1p(x) +module.exports = Math.log1p || function log1p(x) { + return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_math-scale.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_math-scale.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// https://rwaldron.github.io/proposal-math-extensions/ +module.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) { + if (arguments.length === 0 // eslint-disable-next-line no-self-compare + || x != x // eslint-disable-next-line no-self-compare + || inLow != inLow // eslint-disable-next-line no-self-compare + || inHigh != inHigh // eslint-disable-next-line no-self-compare + || outLow != outLow // eslint-disable-next-line no-self-compare + || outHigh != outHigh) return NaN; + if (x === Infinity || x === -Infinity) return x; + return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_math-sign.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_math-sign.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// 20.2.2.28 Math.sign(x) +module.exports = Math.sign || function sign(x) { + // eslint-disable-next-line no-self-compare + return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_meta.js": +/*!***********************************************!*\ + !*** ./node_modules/core-js/modules/_meta.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +var META = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js")('meta'); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var setDesc = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; + +var id = 0; + +var isExtensible = Object.isExtensible || function () { + return true; +}; + +var FREEZE = !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + return isExtensible(Object.preventExtensions({})); +}); + +var setMeta = function setMeta(it) { + setDesc(it, META, { + value: { + i: 'O' + ++id, + // object ID + w: {} // weak collections IDs + + } + }); +}; + +var fastKey = function fastKey(it, create) { + // return primitive with prefix + if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; + + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return 'F'; // not necessary to add metadata + + if (!create) return 'E'; // add missing metadata + + setMeta(it); // return object ID + } + + return it[META].i; +}; + +var getWeak = function getWeak(it, create) { + if (!has(it, META)) { + // can't set metadata to uncaught frozen object + if (!isExtensible(it)) return true; // not necessary to add metadata + + if (!create) return false; // add missing metadata + + setMeta(it); // return hash weak collections IDs + } + + return it[META].w; +}; // add metadata on freeze-family methods calling + + +var onFreeze = function onFreeze(it) { + if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); + return it; +}; + +var meta = module.exports = { + KEY: META, + NEED: false, + fastKey: fastKey, + getWeak: getWeak, + onFreeze: onFreeze +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_metadata.js": +/*!***************************************************!*\ + !*** ./node_modules/core-js/modules/_metadata.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +var Map = __webpack_require__(/*! ./es6.map */ "./node_modules/core-js/modules/es6.map.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var shared = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('metadata'); + +var store = shared.store || (shared.store = new (__webpack_require__(/*! ./es6.weak-map */ "./node_modules/core-js/modules/es6.weak-map.js"))()); + +var getOrCreateMetadataMap = function getOrCreateMetadataMap(target, targetKey, create) { + var targetMetadata = store.get(target); + + if (!targetMetadata) { + if (!create) return undefined; + store.set(target, targetMetadata = new Map()); + } + + var keyMetadata = targetMetadata.get(targetKey); + + if (!keyMetadata) { + if (!create) return undefined; + targetMetadata.set(targetKey, keyMetadata = new Map()); + } + + return keyMetadata; +}; + +var ordinaryHasOwnMetadata = function ordinaryHasOwnMetadata(MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? false : metadataMap.has(MetadataKey); +}; + +var ordinaryGetOwnMetadata = function ordinaryGetOwnMetadata(MetadataKey, O, P) { + var metadataMap = getOrCreateMetadataMap(O, P, false); + return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey); +}; + +var ordinaryDefineOwnMetadata = function ordinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) { + getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue); +}; + +var ordinaryOwnMetadataKeys = function ordinaryOwnMetadataKeys(target, targetKey) { + var metadataMap = getOrCreateMetadataMap(target, targetKey, false); + var keys = []; + if (metadataMap) metadataMap.forEach(function (_, key) { + keys.push(key); + }); + return keys; +}; + +var toMetaKey = function toMetaKey(it) { + return it === undefined || _typeof(it) == 'symbol' ? it : String(it); +}; + +var exp = function exp(O) { + $export($export.S, 'Reflect', O); +}; + +module.exports = { + store: store, + map: getOrCreateMetadataMap, + has: ordinaryHasOwnMetadata, + get: ordinaryGetOwnMetadata, + set: ordinaryDefineOwnMetadata, + keys: ordinaryOwnMetadataKeys, + key: toMetaKey, + exp: exp +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_microtask.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_microtask.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var macrotask = __webpack_require__(/*! ./_task */ "./node_modules/core-js/modules/_task.js").set; + +var Observer = global.MutationObserver || global.WebKitMutationObserver; +var process = global.process; +var Promise = global.Promise; +var isNode = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js")(process) == 'process'; + +module.exports = function () { + var head, last, notify; + + var flush = function flush() { + var parent, fn; + if (isNode && (parent = process.domain)) parent.exit(); + + while (head) { + fn = head.fn; + head = head.next; + + try { + fn(); + } catch (e) { + if (head) notify();else last = undefined; + throw e; + } + } + + last = undefined; + if (parent) parent.enter(); + }; // Node.js + + + if (isNode) { + notify = function notify() { + process.nextTick(flush); + }; // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339 + + } else if (Observer && !(global.navigator && global.navigator.standalone)) { + var toggle = true; + var node = document.createTextNode(''); + new Observer(flush).observe(node, { + characterData: true + }); // eslint-disable-line no-new + + notify = function notify() { + node.data = toggle = !toggle; + }; // environments with maybe non-completely correct, but existent Promise + + } else if (Promise && Promise.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + var promise = Promise.resolve(undefined); + + notify = function notify() { + promise.then(flush); + }; // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessag + // - onreadystatechange + // - setTimeout + + } else { + notify = function notify() { + // strange IE + webpack dev server bug - use .call(global) + macrotask.call(global, flush); + }; + } + + return function (fn) { + var task = { + fn: fn, + next: undefined + }; + if (last) last.next = task; + + if (!head) { + head = task; + notify(); + } + + last = task; + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_new-promise-capability.js": +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/modules/_new-promise-capability.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 25.4.1.5 NewPromiseCapability(C) + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +function PromiseCapability(C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aFunction(resolve); + this.reject = aFunction(reject); +} + +module.exports.f = function (C) { + return new PromiseCapability(C); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-assign.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/_object-assign.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 19.1.2.1 Object.assign(target, source, ...) + +var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); + +var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); + +var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js"); + +var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); + +var $assign = Object.assign; // should work with symbols and should have deterministic property order (V8 bug) + +module.exports = !$assign || __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + var A = {}; + var B = {}; // eslint-disable-next-line no-undef + + var S = Symbol(); + var K = 'abcdefghijklmnopqrst'; + A[S] = 7; + K.split('').forEach(function (k) { + B[k] = k; + }); + return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; +}) ? function assign(target, source) { + // eslint-disable-line no-unused-vars + var T = toObject(target); + var aLen = arguments.length; + var index = 1; + var getSymbols = gOPS.f; + var isEnum = pIE.f; + + while (aLen > index) { + var S = IObject(arguments[index++]); + var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); + var length = keys.length; + var j = 0; + var key; + + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; + } + } + + return T; +} : $assign; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-create.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/_object-create.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var dPs = __webpack_require__(/*! ./_object-dps */ "./node_modules/core-js/modules/_object-dps.js"); + +var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js"); + +var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO'); + +var Empty = function Empty() { + /* empty */ +}; + +var PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype + +var _createDict = function createDict() { + // Thrash, waste and sodomy: IE GC bug + var iframe = __webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js")('iframe'); + + var i = enumBugKeys.length; + var lt = '<'; + var gt = '>'; + var iframeDocument; + iframe.style.display = 'none'; + + __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js").appendChild(iframe); + + iframe.src = 'javascript:'; // eslint-disable-line no-script-url + // createDict = iframe.contentWindow.Object; + // html.removeChild(iframe); + + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); + iframeDocument.close(); + _createDict = iframeDocument.F; + + while (i--) { + delete _createDict[PROTOTYPE][enumBugKeys[i]]; + } + + return _createDict(); +}; + +module.exports = Object.create || function create(O, Properties) { + var result; + + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill + + result[IE_PROTO] = O; + } else result = _createDict(); + + return Properties === undefined ? result : dPs(result, Properties); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-dp.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_object-dp.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/core-js/modules/_ie8-dom-define.js"); + +var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); + +var dP = Object.defineProperty; +exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? Object.defineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) try { + return dP(O, P, Attributes); + } catch (e) { + /* empty */ + } + if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-dps.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_object-dps.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); + +module.exports = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = getKeys(Properties); + var length = keys.length; + var i = 0; + var P; + + while (length > i) { + dP.f(O, P = keys[i++], Properties[P]); + } + + return O; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-forced-pam.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/_object-forced-pam.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // Forced replacement prototype accessors methods + +module.exports = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js") || !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + var K = Math.random(); // In FF throws only define methods + // eslint-disable-next-line no-undef, no-useless-call + + __defineSetter__.call(null, K, function () { + /* empty */ + }); + + delete __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js")[K]; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-gopd.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_object-gopd.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var pIE = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js"); + +var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); + +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); + +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var IE8_DOM_DEFINE = __webpack_require__(/*! ./_ie8-dom-define */ "./node_modules/core-js/modules/_ie8-dom-define.js"); + +var gOPD = Object.getOwnPropertyDescriptor; +exports.f = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? gOPD : function getOwnPropertyDescriptor(O, P) { + O = toIObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) try { + return gOPD(O, P); + } catch (e) { + /* empty */ + } + if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-gopn-ext.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/_object-gopn-ext.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; + +var toString = {}.toString; +var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; + +var getWindowNames = function getWindowNames(it) { + try { + return gOPN(it); + } catch (e) { + return windowNames.slice(); + } +}; + +module.exports.f = function getOwnPropertyNames(it) { + return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-gopn.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_object-gopn.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) +var $keys = __webpack_require__(/*! ./_object-keys-internal */ "./node_modules/core-js/modules/_object-keys-internal.js"); + +var hiddenKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js").concat('length', 'prototype'); + +exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return $keys(O, hiddenKeys); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-gops.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_object-gops.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +exports.f = Object.getOwnPropertySymbols; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-gpo.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_object-gpo.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO'); + +var ObjectProto = Object.prototype; + +module.exports = Object.getPrototypeOf || function (O) { + O = toObject(O); + if (has(O, IE_PROTO)) return O[IE_PROTO]; + + if (typeof O.constructor == 'function' && O instanceof O.constructor) { + return O.constructor.prototype; + } + + return O instanceof Object ? ObjectProto : null; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-keys-internal.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/_object-keys-internal.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var arrayIndexOf = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(false); + +var IE_PROTO = __webpack_require__(/*! ./_shared-key */ "./node_modules/core-js/modules/_shared-key.js")('IE_PROTO'); + +module.exports = function (object, names) { + var O = toIObject(object); + var i = 0; + var result = []; + var key; + + for (key in O) { + if (key != IE_PROTO) has(O, key) && result.push(key); + } // Don't enum bug & hidden keys + + + while (names.length > i) { + if (has(O, key = names[i++])) { + ~arrayIndexOf(result, key) || result.push(key); + } + } + + return result; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-keys.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_object-keys.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.14 / 15.2.3.14 Object.keys(O) +var $keys = __webpack_require__(/*! ./_object-keys-internal */ "./node_modules/core-js/modules/_object-keys-internal.js"); + +var enumBugKeys = __webpack_require__(/*! ./_enum-bug-keys */ "./node_modules/core-js/modules/_enum-bug-keys.js"); + +module.exports = Object.keys || function keys(O) { + return $keys(O, enumBugKeys); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-pie.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_object-pie.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +exports.f = {}.propertyIsEnumerable; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-sap.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_object-sap.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// most Object methods by ES6 should accept primitives +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +module.exports = function (KEY, exec) { + var fn = (core.Object || {})[KEY] || Object[KEY]; + var exp = {}; + exp[KEY] = exec(fn); + $export($export.S + $export.F * fails(function () { + fn(1); + }), 'Object', exp); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_object-to-array.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/_object-to-array.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); + +var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); + +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var isEnum = __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js").f; + +module.exports = function (isEntries) { + return function (it) { + var O = toIObject(it); + var keys = getKeys(O); + var length = keys.length; + var i = 0; + var result = []; + var key; + + while (length > i) { + key = keys[i++]; + + if (!DESCRIPTORS || isEnum.call(O, key)) { + result.push(isEntries ? [key, O[key]] : O[key]); + } + } + + return result; + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_own-keys.js": +/*!***************************************************!*\ + !*** ./node_modules/core-js/modules/_own-keys.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// all object keys, includes non-enumerable and symbols +var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js"); + +var gOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var Reflect = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Reflect; + +module.exports = Reflect && Reflect.ownKeys || function ownKeys(it) { + var keys = gOPN.f(anObject(it)); + var getSymbols = gOPS.f; + return getSymbols ? keys.concat(getSymbols(it)) : keys; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_parse-float.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_parse-float.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $parseFloat = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").parseFloat; + +var $trim = __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js").trim; + +module.exports = 1 / $parseFloat(__webpack_require__(/*! ./_string-ws */ "./node_modules/core-js/modules/_string-ws.js") + '-0') !== -Infinity ? function parseFloat(str) { + var string = $trim(String(str), 3); + var result = $parseFloat(string); + return result === 0 && string.charAt(0) == '-' ? -0 : result; +} : $parseFloat; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_parse-int.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_parse-int.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $parseInt = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").parseInt; + +var $trim = __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js").trim; + +var ws = __webpack_require__(/*! ./_string-ws */ "./node_modules/core-js/modules/_string-ws.js"); + +var hex = /^[-+]?0[xX]/; +module.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) { + var string = $trim(String(str), 3); + return $parseInt(string, radix >>> 0 || (hex.test(string) ? 16 : 10)); +} : $parseInt; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_perform.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/modules/_perform.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (exec) { + try { + return { + e: false, + v: exec() + }; + } catch (e) { + return { + e: true, + v: e + }; + } +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_promise-resolve.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/_promise-resolve.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "./node_modules/core-js/modules/_new-promise-capability.js"); + +module.exports = function (C, x) { + anObject(C); + if (isObject(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_property-desc.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/_property-desc.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_redefine-all.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/_redefine-all.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); + +module.exports = function (target, src, safe) { + for (var key in src) { + redefine(target, key, src[key], safe); + } + + return target; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_redefine.js": +/*!***************************************************!*\ + !*** ./node_modules/core-js/modules/_redefine.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); + +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var SRC = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js")('src'); + +var $toString = __webpack_require__(/*! ./_function-to-string */ "./node_modules/core-js/modules/_function-to-string.js"); + +var TO_STRING = 'toString'; +var TPL = ('' + $toString).split(TO_STRING); + +__webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js").inspectSource = function (it) { + return $toString.call(it); +}; + +(module.exports = function (O, key, val, safe) { + var isFunction = typeof val == 'function'; + if (isFunction) has(val, 'name') || hide(val, 'name', key); + if (O[key] === val) return; + if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); + + if (O === global) { + O[key] = val; + } else if (!safe) { + delete O[key]; + hide(O, key, val); + } else if (O[key]) { + O[key] = val; + } else { + hide(O, key, val); + } // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative + +})(Function.prototype, TO_STRING, function toString() { + return typeof this == 'function' && this[SRC] || $toString.call(this); +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/_regexp-exec-abstract.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/_regexp-exec-abstract.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); + +var builtinExec = RegExp.prototype.exec; // `RegExpExec` abstract operation +// https://tc39.github.io/ecma262/#sec-regexpexec + +module.exports = function (R, S) { + var exec = R.exec; + + if (typeof exec === 'function') { + var result = exec.call(R, S); + + if (_typeof(result) !== 'object') { + throw new TypeError('RegExp exec method returned something other than an Object or null'); + } + + return result; + } + + if (classof(R) !== 'RegExp') { + throw new TypeError('RegExp#exec called on incompatible receiver'); + } + + return builtinExec.call(R, S); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_regexp-exec.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_regexp-exec.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var regexpFlags = __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js"); + +var nativeExec = RegExp.prototype.exec; // This always refers to the native implementation, because the +// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js, +// which loads this file before patching the method. + +var nativeReplace = String.prototype.replace; +var patchedExec = nativeExec; +var LAST_INDEX = 'lastIndex'; + +var UPDATES_LAST_INDEX_WRONG = function () { + var re1 = /a/, + re2 = /b*/g; + nativeExec.call(re1, 'a'); + nativeExec.call(re2, 'a'); + return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0; +}(); // nonparticipating capturing group, copied from es5-shim's String#split patch. + + +var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined; +var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED; + +if (PATCH) { + patchedExec = function exec(str) { + var re = this; + var lastIndex, reCopy, match, i; + + if (NPCG_INCLUDED) { + reCopy = new RegExp('^' + re.source + '$(?!\\s)', regexpFlags.call(re)); + } + + if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX]; + match = nativeExec.call(re, str); + + if (UPDATES_LAST_INDEX_WRONG && match) { + re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex; + } + + if (NPCG_INCLUDED && match && match.length > 1) { + // Fix browsers whose `exec` methods don't consistently return `undefined` + // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/ + // eslint-disable-next-line no-loop-func + nativeReplace.call(match[0], reCopy, function () { + for (i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) match[i] = undefined; + } + }); + } + + return match; + }; +} + +module.exports = patchedExec; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_replacer.js": +/*!***************************************************!*\ + !*** ./node_modules/core-js/modules/_replacer.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = function (regExp, replace) { + var replacer = replace === Object(replace) ? function (part) { + return replace[part]; + } : replace; + return function (it) { + return String(it).replace(regExp, replacer); + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_same-value.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_same-value.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// 7.2.9 SameValue(x, y) +module.exports = Object.is || function is(x, y) { + // eslint-disable-next-line no-self-compare + return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_set-collection-from.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/_set-collection-from.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://tc39.github.io/proposal-setmap-offrom/ + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + +var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { + from: function from(source + /* , mapFn, thisArg */ + ) { + var mapFn = arguments[1]; + var mapping, A, n, cb; + aFunction(this); + mapping = mapFn !== undefined; + if (mapping) aFunction(mapFn); + if (source == undefined) return new this(); + A = []; + + if (mapping) { + n = 0; + cb = ctx(mapFn, arguments[2], 2); + forOf(source, false, function (nextItem) { + A.push(cb(nextItem, n++)); + }); + } else { + forOf(source, false, A.push, A); + } + + return new this(A); + } + }); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_set-collection-of.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/_set-collection-of.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://tc39.github.io/proposal-setmap-offrom/ + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +module.exports = function (COLLECTION) { + $export($export.S, COLLECTION, { + of: function of() { + var length = arguments.length; + var A = new Array(length); + + while (length--) { + A[length] = arguments[length]; + } + + return new this(A); + } + }); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_set-proto.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_set-proto.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// Works with __proto__ only. Old v8 can't work with null proto objects. + +/* eslint-disable no-proto */ +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var check = function check(O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); +}; + +module.exports = { + set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line + function (test, buggy, set) { + try { + set = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js")(Function.call, __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f(Object.prototype, '__proto__').set, 2); + set(test, []); + buggy = !(test instanceof Array); + } catch (e) { + buggy = true; + } + + return function setPrototypeOf(O, proto) { + check(O, proto); + if (buggy) O.__proto__ = proto;else set(O, proto); + return O; + }; + }({}, false) : undefined), + check: check +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_set-species.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_set-species.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); + +var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); + +var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species'); + +module.exports = function (KEY) { + var C = global[KEY]; + if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { + configurable: true, + get: function get() { + return this; + } + }); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_set-to-string-tag.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/_set-to-string-tag.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var def = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; + +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var TAG = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag'); + +module.exports = function (it, tag, stat) { + if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { + configurable: true, + value: tag + }); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_shared-key.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_shared-key.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var shared = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('keys'); + +var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); + +module.exports = function (key) { + return shared[key] || (shared[key] = uid(key)); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_shared.js": +/*!*************************************************!*\ + !*** ./node_modules/core-js/modules/_shared.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var SHARED = '__core-js_shared__'; +var store = global[SHARED] || (global[SHARED] = {}); +(module.exports = function (key, value) { + return store[key] || (store[key] = value !== undefined ? value : {}); +})('versions', []).push({ + version: core.version, + mode: __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js") ? 'pure' : 'global', + copyright: '© 2020 Denis Pushkarev (zloirock.ru)' +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/_species-constructor.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/_species-constructor.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.3.20 SpeciesConstructor(O, defaultConstructor) +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var SPECIES = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species'); + +module.exports = function (O, D) { + var C = anObject(O).constructor; + var S; + return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_strict-method.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/_strict-method.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +module.exports = function (method, arg) { + return !!method && fails(function () { + // eslint-disable-next-line no-useless-call + arg ? method.call(null, function () { + /* empty */ + }, 1) : method.call(null); + }); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_string-at.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_string-at.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); // true -> String#at +// false -> String#codePointAt + + +module.exports = function (TO_STRING) { + return function (that, pos) { + var s = String(defined(that)); + var i = toInteger(pos); + var l = s.length; + var a, b; + if (i < 0 || i >= l) return TO_STRING ? '' : undefined; + a = s.charCodeAt(i); + return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; + }; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_string-context.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/_string-context.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// helper for String#{startsWith, endsWith, includes} +var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js"); + +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); + +module.exports = function (that, searchString, NAME) { + if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); + return String(defined(that)); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_string-html.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_string-html.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); + +var quot = /"/g; // B.2.3.2.1 CreateHTML(string, tag, attribute, value) + +var createHTML = function createHTML(string, tag, attribute, value) { + var S = String(defined(string)); + var p1 = '<' + tag; + if (attribute !== '') p1 += ' ' + attribute + '="' + String(value).replace(quot, '"') + '"'; + return p1 + '>' + S + ''; +}; + +module.exports = function (NAME, exec) { + var O = {}; + O[NAME] = exec(createHTML); + $export($export.P + $export.F * fails(function () { + var test = ''[NAME]('"'); + return test !== test.toLowerCase() || test.split('"').length > 3; + }), 'String', O); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_string-pad.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_string-pad.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-string-pad-start-end +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var repeat = __webpack_require__(/*! ./_string-repeat */ "./node_modules/core-js/modules/_string-repeat.js"); + +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); + +module.exports = function (that, maxLength, fillString, left) { + var S = String(defined(that)); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : String(fillString); + var intMaxLength = toLength(maxLength); + if (intMaxLength <= stringLength || fillStr == '') return S; + var fillLen = intMaxLength - stringLength; + var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); + return left ? stringFiller + S : S + stringFiller; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_string-repeat.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/_string-repeat.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); + +module.exports = function repeat(count) { + var str = String(defined(this)); + var res = ''; + var n = toInteger(count); + if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); + + for (; n > 0; (n >>>= 1) && (str += str)) { + if (n & 1) res += str; + } + + return res; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_string-trim.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_string-trim.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var spaces = __webpack_require__(/*! ./_string-ws */ "./node_modules/core-js/modules/_string-ws.js"); + +var space = '[' + spaces + ']'; +var non = "\u200B\x85"; +var ltrim = RegExp('^' + space + space + '*'); +var rtrim = RegExp(space + space + '*$'); + +var exporter = function exporter(KEY, exec, ALIAS) { + var exp = {}; + var FORCE = fails(function () { + return !!spaces[KEY]() || non[KEY]() != non; + }); + var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY]; + if (ALIAS) exp[ALIAS] = fn; + $export($export.P + $export.F * FORCE, 'String', exp); +}; // 1 -> String#trimLeft +// 2 -> String#trimRight +// 3 -> String#trim + + +var trim = exporter.trim = function (string, TYPE) { + string = String(defined(string)); + if (TYPE & 1) string = string.replace(ltrim, ''); + if (TYPE & 2) string = string.replace(rtrim, ''); + return string; +}; + +module.exports = exporter; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_string-ws.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_string-ws.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +module.exports = "\t\n\x0B\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003" + "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF"; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_task.js": +/*!***********************************************!*\ + !*** ./node_modules/core-js/modules/_task.js ***! + \***********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + +var invoke = __webpack_require__(/*! ./_invoke */ "./node_modules/core-js/modules/_invoke.js"); + +var html = __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js"); + +var cel = __webpack_require__(/*! ./_dom-create */ "./node_modules/core-js/modules/_dom-create.js"); + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var process = global.process; +var setTask = global.setImmediate; +var clearTask = global.clearImmediate; +var MessageChannel = global.MessageChannel; +var Dispatch = global.Dispatch; +var counter = 0; +var queue = {}; +var ONREADYSTATECHANGE = 'onreadystatechange'; +var defer, channel, port; + +var run = function run() { + var id = +this; // eslint-disable-next-line no-prototype-builtins + + if (queue.hasOwnProperty(id)) { + var fn = queue[id]; + delete queue[id]; + fn(); + } +}; + +var listener = function listener(event) { + run.call(event.data); +}; // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + + +if (!setTask || !clearTask) { + setTask = function setImmediate(fn) { + var args = []; + var i = 1; + + while (arguments.length > i) { + args.push(arguments[i++]); + } + + queue[++counter] = function () { + // eslint-disable-next-line no-new-func + invoke(typeof fn == 'function' ? fn : Function(fn), args); + }; + + defer(counter); + return counter; + }; + + clearTask = function clearImmediate(id) { + delete queue[id]; + }; // Node.js 0.8- + + + if (__webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js")(process) == 'process') { + defer = function defer(id) { + process.nextTick(ctx(run, id, 1)); + }; // Sphere (JS game engine) Dispatch API + + } else if (Dispatch && Dispatch.now) { + defer = function defer(id) { + Dispatch.now(ctx(run, id, 1)); + }; // Browsers with MessageChannel, includes WebWorkers + + } else if (MessageChannel) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = listener; + defer = ctx(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { + defer = function defer(id) { + global.postMessage(id + '', '*'); + }; + + global.addEventListener('message', listener, false); // IE8- + } else if (ONREADYSTATECHANGE in cel('script')) { + defer = function defer(id) { + html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run.call(id); + }; + }; // Rest old browsers + + } else { + defer = function defer(id) { + setTimeout(ctx(run, id, 1), 0); + }; + } +} + +module.exports = { + set: setTask, + clear: clearTask +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_to-absolute-index.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/_to-absolute-index.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var max = Math.max; +var min = Math.min; + +module.exports = function (index, length) { + index = toInteger(index); + return index < 0 ? max(index + length, 0) : min(index, length); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_to-index.js": +/*!***************************************************!*\ + !*** ./node_modules/core-js/modules/_to-index.js ***! + \***************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/ecma262/#sec-toindex +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +module.exports = function (it) { + if (it === undefined) return 0; + var number = toInteger(it); + var length = toLength(number); + if (number !== length) throw RangeError('Wrong length!'); + return length; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_to-integer.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_to-integer.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +// 7.1.4 ToInteger +var ceil = Math.ceil; +var floor = Math.floor; + +module.exports = function (it) { + return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_to-iobject.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_to-iobject.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// to indexed object, toObject with fallback for non-array-like ES3 strings +var IObject = __webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js"); + +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); + +module.exports = function (it) { + return IObject(defined(it)); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_to-length.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_to-length.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.15 ToLength +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var min = Math.min; + +module.exports = function (it) { + return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_to-object.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/_to-object.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.13 ToObject(argument) +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); + +module.exports = function (it) { + return Object(defined(it)); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_to-primitive.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/_to-primitive.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 7.1.1 ToPrimitive(input [, PreferredType]) +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); // instead of the ES6 spec version, we didn't implement @@toPrimitive case +// and the second argument - flag - preferred type is a string + + +module.exports = function (it, S) { + if (!isObject(it)) return it; + var fn, val; + if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; + if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; + throw TypeError("Can't convert object to primitive value"); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_typed-array.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/_typed-array.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +if (__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js")) { + var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); + + var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + + var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + + var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + + var $typed = __webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js"); + + var $buffer = __webpack_require__(/*! ./_typed-buffer */ "./node_modules/core-js/modules/_typed-buffer.js"); + + var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + + var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); + + var propertyDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); + + var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); + + var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); + + var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + + var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + + var toIndex = __webpack_require__(/*! ./_to-index */ "./node_modules/core-js/modules/_to-index.js"); + + var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); + + var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); + + var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + + var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); + + var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + + var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + + var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js"); + + var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); + + var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + + var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; + + var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js"); + + var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); + + var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); + + var createArrayMethod = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js"); + + var createArrayIncludes = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js"); + + var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js"); + + var ArrayIterators = __webpack_require__(/*! ./es6.array.iterator */ "./node_modules/core-js/modules/es6.array.iterator.js"); + + var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); + + var $iterDetect = __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js"); + + var setSpecies = __webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js"); + + var arrayFill = __webpack_require__(/*! ./_array-fill */ "./node_modules/core-js/modules/_array-fill.js"); + + var arrayCopyWithin = __webpack_require__(/*! ./_array-copy-within */ "./node_modules/core-js/modules/_array-copy-within.js"); + + var $DP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); + + var $GOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); + + var dP = $DP.f; + var gOPD = $GOPD.f; + var RangeError = global.RangeError; + var TypeError = global.TypeError; + var Uint8Array = global.Uint8Array; + var ARRAY_BUFFER = 'ArrayBuffer'; + var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER; + var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT'; + var PROTOTYPE = 'prototype'; + var ArrayProto = Array[PROTOTYPE]; + var $ArrayBuffer = $buffer.ArrayBuffer; + var $DataView = $buffer.DataView; + var arrayForEach = createArrayMethod(0); + var arrayFilter = createArrayMethod(2); + var arraySome = createArrayMethod(3); + var arrayEvery = createArrayMethod(4); + var arrayFind = createArrayMethod(5); + var arrayFindIndex = createArrayMethod(6); + var arrayIncludes = createArrayIncludes(true); + var arrayIndexOf = createArrayIncludes(false); + var arrayValues = ArrayIterators.values; + var arrayKeys = ArrayIterators.keys; + var arrayEntries = ArrayIterators.entries; + var arrayLastIndexOf = ArrayProto.lastIndexOf; + var arrayReduce = ArrayProto.reduce; + var arrayReduceRight = ArrayProto.reduceRight; + var arrayJoin = ArrayProto.join; + var arraySort = ArrayProto.sort; + var arraySlice = ArrayProto.slice; + var arrayToString = ArrayProto.toString; + var arrayToLocaleString = ArrayProto.toLocaleString; + var ITERATOR = wks('iterator'); + var TAG = wks('toStringTag'); + var TYPED_CONSTRUCTOR = uid('typed_constructor'); + var DEF_CONSTRUCTOR = uid('def_constructor'); + var ALL_CONSTRUCTORS = $typed.CONSTR; + var TYPED_ARRAY = $typed.TYPED; + var VIEW = $typed.VIEW; + var WRONG_LENGTH = 'Wrong length!'; + var $map = createArrayMethod(1, function (O, length) { + return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length); + }); + var LITTLE_ENDIAN = fails(function () { + // eslint-disable-next-line no-undef + return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1; + }); + var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () { + new Uint8Array(1).set({}); + }); + + var toOffset = function toOffset(it, BYTES) { + var offset = toInteger(it); + if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!'); + return offset; + }; + + var validate = function validate(it) { + if (isObject(it) && TYPED_ARRAY in it) return it; + throw TypeError(it + ' is not a typed array!'); + }; + + var allocate = function allocate(C, length) { + if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) { + throw TypeError('It is not a typed array constructor!'); + } + + return new C(length); + }; + + var speciesFromList = function speciesFromList(O, list) { + return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list); + }; + + var fromList = function fromList(C, list) { + var index = 0; + var length = list.length; + var result = allocate(C, length); + + while (length > index) { + result[index] = list[index++]; + } + + return result; + }; + + var addGetter = function addGetter(it, key, internal) { + dP(it, key, { + get: function get() { + return this._d[internal]; + } + }); + }; + + var $from = function from(source + /* , mapfn, thisArg */ + ) { + var O = toObject(source); + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var iterFn = getIterFn(O); + var i, length, values, result, step, iterator; + + if (iterFn != undefined && !isArrayIter(iterFn)) { + for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) { + values.push(step.value); + } + + O = values; + } + + if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2); + + for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) { + result[i] = mapping ? mapfn(O[i], i) : O[i]; + } + + return result; + }; + + var $of = function + /* ...items */ + of() { + var index = 0; + var length = arguments.length; + var result = allocate(this, length); + + while (length > index) { + result[index] = arguments[index++]; + } + + return result; + }; // iOS Safari 6.x fails here + + + var TO_LOCALE_BUG = !!Uint8Array && fails(function () { + arrayToLocaleString.call(new Uint8Array(1)); + }); + + var $toLocaleString = function toLocaleString() { + return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments); + }; + + var proto = { + copyWithin: function copyWithin(target, start + /* , end */ + ) { + return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined); + }, + every: function every(callbackfn + /* , thisArg */ + ) { + return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + fill: function fill(value + /* , start, end */ + ) { + // eslint-disable-line no-unused-vars + return arrayFill.apply(validate(this), arguments); + }, + filter: function filter(callbackfn + /* , thisArg */ + ) { + return speciesFromList(this, arrayFilter(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined)); + }, + find: function find(predicate + /* , thisArg */ + ) { + return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }, + findIndex: function findIndex(predicate + /* , thisArg */ + ) { + return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined); + }, + forEach: function forEach(callbackfn + /* , thisArg */ + ) { + arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + indexOf: function indexOf(searchElement + /* , fromIndex */ + ) { + return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }, + includes: function includes(searchElement + /* , fromIndex */ + ) { + return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined); + }, + join: function join(separator) { + // eslint-disable-line no-unused-vars + return arrayJoin.apply(validate(this), arguments); + }, + lastIndexOf: function lastIndexOf(searchElement + /* , fromIndex */ + ) { + // eslint-disable-line no-unused-vars + return arrayLastIndexOf.apply(validate(this), arguments); + }, + map: function map(mapfn + /* , thisArg */ + ) { + return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined); + }, + reduce: function reduce(callbackfn + /* , initialValue */ + ) { + // eslint-disable-line no-unused-vars + return arrayReduce.apply(validate(this), arguments); + }, + reduceRight: function reduceRight(callbackfn + /* , initialValue */ + ) { + // eslint-disable-line no-unused-vars + return arrayReduceRight.apply(validate(this), arguments); + }, + reverse: function reverse() { + var that = this; + var length = validate(that).length; + var middle = Math.floor(length / 2); + var index = 0; + var value; + + while (index < middle) { + value = that[index]; + that[index++] = that[--length]; + that[length] = value; + } + + return that; + }, + some: function some(callbackfn + /* , thisArg */ + ) { + return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined); + }, + sort: function sort(comparefn) { + return arraySort.call(validate(this), comparefn); + }, + subarray: function subarray(begin, end) { + var O = validate(this); + var length = O.length; + var $begin = toAbsoluteIndex(begin, length); + return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(O.buffer, O.byteOffset + $begin * O.BYTES_PER_ELEMENT, toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)); + } + }; + + var $slice = function slice(start, end) { + return speciesFromList(this, arraySlice.call(validate(this), start, end)); + }; + + var $set = function set(arrayLike + /* , offset */ + ) { + validate(this); + var offset = toOffset(arguments[1], 1); + var length = this.length; + var src = toObject(arrayLike); + var len = toLength(src.length); + var index = 0; + if (len + offset > length) throw RangeError(WRONG_LENGTH); + + while (index < len) { + this[offset + index] = src[index++]; + } + }; + + var $iterators = { + entries: function entries() { + return arrayEntries.call(validate(this)); + }, + keys: function keys() { + return arrayKeys.call(validate(this)); + }, + values: function values() { + return arrayValues.call(validate(this)); + } + }; + + var isTAIndex = function isTAIndex(target, key) { + return isObject(target) && target[TYPED_ARRAY] && _typeof(key) != 'symbol' && key in target && String(+key) == String(key); + }; + + var $getDesc = function getOwnPropertyDescriptor(target, key) { + return isTAIndex(target, key = toPrimitive(key, true)) ? propertyDesc(2, target[key]) : gOPD(target, key); + }; + + var $setDesc = function defineProperty(target, key, desc) { + if (isTAIndex(target, key = toPrimitive(key, true)) && isObject(desc) && has(desc, 'value') && !has(desc, 'get') && !has(desc, 'set') // TODO: add validation descriptor w/o calling accessors + && !desc.configurable && (!has(desc, 'writable') || desc.writable) && (!has(desc, 'enumerable') || desc.enumerable)) { + target[key] = desc.value; + return target; + } + + return dP(target, key, desc); + }; + + if (!ALL_CONSTRUCTORS) { + $GOPD.f = $getDesc; + $DP.f = $setDesc; + } + + $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', { + getOwnPropertyDescriptor: $getDesc, + defineProperty: $setDesc + }); + + if (fails(function () { + arrayToString.call({}); + })) { + arrayToString = arrayToLocaleString = function toString() { + return arrayJoin.call(this); + }; + } + + var $TypedArrayPrototype$ = redefineAll({}, proto); + redefineAll($TypedArrayPrototype$, $iterators); + hide($TypedArrayPrototype$, ITERATOR, $iterators.values); + redefineAll($TypedArrayPrototype$, { + slice: $slice, + set: $set, + constructor: function constructor() { + /* noop */ + }, + toString: arrayToString, + toLocaleString: $toLocaleString + }); + addGetter($TypedArrayPrototype$, 'buffer', 'b'); + addGetter($TypedArrayPrototype$, 'byteOffset', 'o'); + addGetter($TypedArrayPrototype$, 'byteLength', 'l'); + addGetter($TypedArrayPrototype$, 'length', 'e'); + dP($TypedArrayPrototype$, TAG, { + get: function get() { + return this[TYPED_ARRAY]; + } + }); // eslint-disable-next-line max-statements + + module.exports = function (KEY, BYTES, wrapper, CLAMPED) { + CLAMPED = !!CLAMPED; + var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array'; + var GETTER = 'get' + KEY; + var SETTER = 'set' + KEY; + var TypedArray = global[NAME]; + var Base = TypedArray || {}; + var TAC = TypedArray && getPrototypeOf(TypedArray); + var FORCED = !TypedArray || !$typed.ABV; + var O = {}; + var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE]; + + var getter = function getter(that, index) { + var data = that._d; + return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN); + }; + + var setter = function setter(that, index, value) { + var data = that._d; + if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff; + data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN); + }; + + var addElement = function addElement(that, index) { + dP(that, index, { + get: function get() { + return getter(this, index); + }, + set: function set(value) { + return setter(this, index, value); + }, + enumerable: true + }); + }; + + if (FORCED) { + TypedArray = wrapper(function (that, data, $offset, $length) { + anInstance(that, TypedArray, NAME, '_d'); + var index = 0; + var offset = 0; + var buffer, byteLength, length, klass; + + if (!isObject(data)) { + length = toIndex(data); + byteLength = length * BYTES; + buffer = new $ArrayBuffer(byteLength); + } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { + buffer = data; + offset = toOffset($offset, BYTES); + var $len = data.byteLength; + + if ($length === undefined) { + if ($len % BYTES) throw RangeError(WRONG_LENGTH); + byteLength = $len - offset; + if (byteLength < 0) throw RangeError(WRONG_LENGTH); + } else { + byteLength = toLength($length) * BYTES; + if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH); + } + + length = byteLength / BYTES; + } else if (TYPED_ARRAY in data) { + return fromList(TypedArray, data); + } else { + return $from.call(TypedArray, data); + } + + hide(that, '_d', { + b: buffer, + o: offset, + l: byteLength, + e: length, + v: new $DataView(buffer) + }); + + while (index < length) { + addElement(that, index++); + } + }); + TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$); + hide(TypedArrayPrototype, 'constructor', TypedArray); + } else if (!fails(function () { + TypedArray(1); + }) || !fails(function () { + new TypedArray(-1); // eslint-disable-line no-new + }) || !$iterDetect(function (iter) { + new TypedArray(); // eslint-disable-line no-new + + new TypedArray(null); // eslint-disable-line no-new + + new TypedArray(1.5); // eslint-disable-line no-new + + new TypedArray(iter); // eslint-disable-line no-new + }, true)) { + TypedArray = wrapper(function (that, data, $offset, $length) { + anInstance(that, TypedArray, NAME); + var klass; // `ws` module bug, temporarily remove validation length for Uint8Array + // https://github.com/websockets/ws/pull/645 + + if (!isObject(data)) return new Base(toIndex(data)); + + if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) { + return $length !== undefined ? new Base(data, toOffset($offset, BYTES), $length) : $offset !== undefined ? new Base(data, toOffset($offset, BYTES)) : new Base(data); + } + + if (TYPED_ARRAY in data) return fromList(TypedArray, data); + return $from.call(TypedArray, data); + }); + arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) { + if (!(key in TypedArray)) hide(TypedArray, key, Base[key]); + }); + TypedArray[PROTOTYPE] = TypedArrayPrototype; + if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray; + } + + var $nativeIterator = TypedArrayPrototype[ITERATOR]; + var CORRECT_ITER_NAME = !!$nativeIterator && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined); + var $iterator = $iterators.values; + hide(TypedArray, TYPED_CONSTRUCTOR, true); + hide(TypedArrayPrototype, TYPED_ARRAY, NAME); + hide(TypedArrayPrototype, VIEW, true); + hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray); + + if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) { + dP(TypedArrayPrototype, TAG, { + get: function get() { + return NAME; + } + }); + } + + O[NAME] = TypedArray; + $export($export.G + $export.W + $export.F * (TypedArray != Base), O); + $export($export.S, NAME, { + BYTES_PER_ELEMENT: BYTES + }); + $export($export.S + $export.F * fails(function () { + Base.of.call(TypedArray, 1); + }), NAME, { + from: $from, + of: $of + }); + if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES); + $export($export.P, NAME, proto); + setSpecies(NAME); + $export($export.P + $export.F * FORCED_SET, NAME, { + set: $set + }); + $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators); + if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString; + $export($export.P + $export.F * fails(function () { + new TypedArray(1).slice(); + }), NAME, { + slice: $slice + }); + $export($export.P + $export.F * (fails(function () { + return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString(); + }) || !fails(function () { + TypedArrayPrototype.toLocaleString.call([1, 2]); + })), NAME, { + toLocaleString: $toLocaleString + }); + Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator; + if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator); + }; +} else module.exports = function () { + /* empty */ +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_typed-buffer.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/_typed-buffer.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); + +var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); + +var $typed = __webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js"); + +var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); + +var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); + +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var toIndex = __webpack_require__(/*! ./_to-index */ "./node_modules/core-js/modules/_to-index.js"); + +var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; + +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; + +var arrayFill = __webpack_require__(/*! ./_array-fill */ "./node_modules/core-js/modules/_array-fill.js"); + +var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); + +var ARRAY_BUFFER = 'ArrayBuffer'; +var DATA_VIEW = 'DataView'; +var PROTOTYPE = 'prototype'; +var WRONG_LENGTH = 'Wrong length!'; +var WRONG_INDEX = 'Wrong index!'; +var $ArrayBuffer = global[ARRAY_BUFFER]; +var $DataView = global[DATA_VIEW]; +var Math = global.Math; +var RangeError = global.RangeError; // eslint-disable-next-line no-shadow-restricted-names + +var Infinity = global.Infinity; +var BaseBuffer = $ArrayBuffer; +var abs = Math.abs; +var pow = Math.pow; +var floor = Math.floor; +var log = Math.log; +var LN2 = Math.LN2; +var BUFFER = 'buffer'; +var BYTE_LENGTH = 'byteLength'; +var BYTE_OFFSET = 'byteOffset'; +var $BUFFER = DESCRIPTORS ? '_b' : BUFFER; +var $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH; +var $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET; // IEEE754 conversions based on https://github.com/feross/ieee754 + +function packIEEE754(value, mLen, nBytes) { + var buffer = new Array(nBytes); + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0; + var i = 0; + var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0; + var e, m, c; + value = abs(value); // eslint-disable-next-line no-self-compare + + if (value != value || value === Infinity) { + // eslint-disable-next-line no-self-compare + m = value != value ? 1 : 0; + e = eMax; + } else { + e = floor(log(value) / LN2); + + if (value * (c = pow(2, -e)) < 1) { + e--; + c *= 2; + } + + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * pow(2, 1 - eBias); + } + + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = (value * c - 1) * pow(2, mLen); + e = e + eBias; + } else { + m = value * pow(2, eBias - 1) * pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8) { + ; + } + + e = e << mLen | m; + eLen += mLen; + + for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8) { + ; + } + + buffer[--i] |= s * 128; + return buffer; +} + +function unpackIEEE754(buffer, mLen, nBytes) { + var eLen = nBytes * 8 - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = eLen - 7; + var i = nBytes - 1; + var s = buffer[i--]; + var e = s & 127; + var m; + s >>= 7; + + for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8) { + ; + } + + m = e & (1 << -nBits) - 1; + e >>= -nBits; + nBits += mLen; + + for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8) { + ; + } + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : s ? -Infinity : Infinity; + } else { + m = m + pow(2, mLen); + e = e - eBias; + } + + return (s ? -1 : 1) * m * pow(2, e - mLen); +} + +function unpackI32(bytes) { + return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]; +} + +function packI8(it) { + return [it & 0xff]; +} + +function packI16(it) { + return [it & 0xff, it >> 8 & 0xff]; +} + +function packI32(it) { + return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff]; +} + +function packF64(it) { + return packIEEE754(it, 52, 8); +} + +function packF32(it) { + return packIEEE754(it, 23, 4); +} + +function addGetter(C, key, internal) { + dP(C[PROTOTYPE], key, { + get: function get() { + return this[internal]; + } + }); +} + +function get(view, bytes, index, isLittleEndian) { + var numIndex = +index; + var intIndex = toIndex(numIndex); + if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); + var store = view[$BUFFER]._b; + var start = intIndex + view[$OFFSET]; + var pack = store.slice(start, start + bytes); + return isLittleEndian ? pack : pack.reverse(); +} + +function set(view, bytes, index, conversion, value, isLittleEndian) { + var numIndex = +index; + var intIndex = toIndex(numIndex); + if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX); + var store = view[$BUFFER]._b; + var start = intIndex + view[$OFFSET]; + var pack = conversion(+value); + + for (var i = 0; i < bytes; i++) { + store[start + i] = pack[isLittleEndian ? i : bytes - i - 1]; + } +} + +if (!$typed.ABV) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer, ARRAY_BUFFER); + var byteLength = toIndex(length); + this._b = arrayFill.call(new Array(byteLength), 0); + this[$LENGTH] = byteLength; + }; + + $DataView = function DataView(buffer, byteOffset, byteLength) { + anInstance(this, $DataView, DATA_VIEW); + anInstance(buffer, $ArrayBuffer, DATA_VIEW); + var bufferLength = buffer[$LENGTH]; + var offset = toInteger(byteOffset); + if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!'); + byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength); + if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH); + this[$BUFFER] = buffer; + this[$OFFSET] = offset; + this[$LENGTH] = byteLength; + }; + + if (DESCRIPTORS) { + addGetter($ArrayBuffer, BYTE_LENGTH, '_l'); + addGetter($DataView, BUFFER, '_b'); + addGetter($DataView, BYTE_LENGTH, '_l'); + addGetter($DataView, BYTE_OFFSET, '_o'); + } + + redefineAll($DataView[PROTOTYPE], { + getInt8: function getInt8(byteOffset) { + return get(this, 1, byteOffset)[0] << 24 >> 24; + }, + getUint8: function getUint8(byteOffset) { + return get(this, 1, byteOffset)[0]; + }, + getInt16: function getInt16(byteOffset + /* , littleEndian */ + ) { + var bytes = get(this, 2, byteOffset, arguments[1]); + return (bytes[1] << 8 | bytes[0]) << 16 >> 16; + }, + getUint16: function getUint16(byteOffset + /* , littleEndian */ + ) { + var bytes = get(this, 2, byteOffset, arguments[1]); + return bytes[1] << 8 | bytes[0]; + }, + getInt32: function getInt32(byteOffset + /* , littleEndian */ + ) { + return unpackI32(get(this, 4, byteOffset, arguments[1])); + }, + getUint32: function getUint32(byteOffset + /* , littleEndian */ + ) { + return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0; + }, + getFloat32: function getFloat32(byteOffset + /* , littleEndian */ + ) { + return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4); + }, + getFloat64: function getFloat64(byteOffset + /* , littleEndian */ + ) { + return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8); + }, + setInt8: function setInt8(byteOffset, value) { + set(this, 1, byteOffset, packI8, value); + }, + setUint8: function setUint8(byteOffset, value) { + set(this, 1, byteOffset, packI8, value); + }, + setInt16: function setInt16(byteOffset, value + /* , littleEndian */ + ) { + set(this, 2, byteOffset, packI16, value, arguments[2]); + }, + setUint16: function setUint16(byteOffset, value + /* , littleEndian */ + ) { + set(this, 2, byteOffset, packI16, value, arguments[2]); + }, + setInt32: function setInt32(byteOffset, value + /* , littleEndian */ + ) { + set(this, 4, byteOffset, packI32, value, arguments[2]); + }, + setUint32: function setUint32(byteOffset, value + /* , littleEndian */ + ) { + set(this, 4, byteOffset, packI32, value, arguments[2]); + }, + setFloat32: function setFloat32(byteOffset, value + /* , littleEndian */ + ) { + set(this, 4, byteOffset, packF32, value, arguments[2]); + }, + setFloat64: function setFloat64(byteOffset, value + /* , littleEndian */ + ) { + set(this, 8, byteOffset, packF64, value, arguments[2]); + } + }); +} else { + if (!fails(function () { + $ArrayBuffer(1); + }) || !fails(function () { + new $ArrayBuffer(-1); // eslint-disable-line no-new + }) || fails(function () { + new $ArrayBuffer(); // eslint-disable-line no-new + + new $ArrayBuffer(1.5); // eslint-disable-line no-new + + new $ArrayBuffer(NaN); // eslint-disable-line no-new + + return $ArrayBuffer.name != ARRAY_BUFFER; + })) { + $ArrayBuffer = function ArrayBuffer(length) { + anInstance(this, $ArrayBuffer); + return new BaseBuffer(toIndex(length)); + }; + + var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE]; + + for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) { + if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]); + } + + if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer; + } // iOS Safari 7.x bug + + + var view = new $DataView(new $ArrayBuffer(2)); + var $setInt8 = $DataView[PROTOTYPE].setInt8; + view.setInt8(0, 2147483648); + view.setInt8(1, 2147483649); + if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], { + setInt8: function setInt8(byteOffset, value) { + $setInt8.call(this, byteOffset, value << 24 >> 24); + }, + setUint8: function setUint8(byteOffset, value) { + $setInt8.call(this, byteOffset, value << 24 >> 24); + } + }, true); +} + +setToStringTag($ArrayBuffer, ARRAY_BUFFER); +setToStringTag($DataView, DATA_VIEW); +hide($DataView[PROTOTYPE], $typed.VIEW, true); +exports[ARRAY_BUFFER] = $ArrayBuffer; +exports[DATA_VIEW] = $DataView; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_typed.js": +/*!************************************************!*\ + !*** ./node_modules/core-js/modules/_typed.js ***! + \************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); + +var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); + +var TYPED = uid('typed_array'); +var VIEW = uid('view'); +var ABV = !!(global.ArrayBuffer && global.DataView); +var CONSTR = ABV; +var i = 0; +var l = 9; +var Typed; +var TypedArrayConstructors = 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'.split(','); + +while (i < l) { + if (Typed = global[TypedArrayConstructors[i++]]) { + hide(Typed.prototype, TYPED, true); + hide(Typed.prototype, VIEW, true); + } else CONSTR = false; +} + +module.exports = { + ABV: ABV, + CONSTR: CONSTR, + TYPED: TYPED, + VIEW: VIEW +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_uid.js": +/*!**********************************************!*\ + !*** ./node_modules/core-js/modules/_uid.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports) { + +var id = 0; +var px = Math.random(); + +module.exports = function (key) { + return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_user-agent.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_user-agent.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var navigator = global.navigator; +module.exports = navigator && navigator.userAgent || ''; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_validate-collection.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/_validate-collection.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +module.exports = function (it, TYPE) { + if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); + return it; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_wks-define.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/_wks-define.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); + +var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); + +var wksExt = __webpack_require__(/*! ./_wks-ext */ "./node_modules/core-js/modules/_wks-ext.js"); + +var defineProperty = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; + +module.exports = function (name) { + var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); + if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { + value: wksExt.f(name) + }); +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/_wks-ext.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/modules/_wks-ext.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +exports.f = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); + +/***/ }), + +/***/ "./node_modules/core-js/modules/_wks.js": +/*!**********************************************!*\ + !*** ./node_modules/core-js/modules/_wks.js ***! + \**********************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var store = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js")('wks'); + +var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); + +var _Symbol = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Symbol; + +var USE_SYMBOL = typeof _Symbol == 'function'; + +var $exports = module.exports = function (name) { + return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); +}; + +$exports.store = store; + +/***/ }), + +/***/ "./node_modules/core-js/modules/core.get-iterator-method.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/modules/core.get-iterator-method.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); + +var ITERATOR = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('iterator'); + +var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); + +module.exports = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js").getIteratorMethod = function (it) { + if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; +}; + +/***/ }), + +/***/ "./node_modules/core-js/modules/core.regexp.escape.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/core.regexp.escape.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/benjamingr/RexExp.escape +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $re = __webpack_require__(/*! ./_replacer */ "./node_modules/core-js/modules/_replacer.js")(/[\\^$*+?.()|[\]{}]/g, '\\$&'); + +$export($export.S, 'RegExp', { + escape: function escape(it) { + return $re(it); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.copy-within.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.copy-within.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.P, 'Array', { + copyWithin: __webpack_require__(/*! ./_array-copy-within */ "./node_modules/core-js/modules/_array-copy-within.js") +}); + +__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('copyWithin'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.every.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.every.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $every = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(4); + +$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].every, true), 'Array', { + // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg]) + every: function every(callbackfn + /* , thisArg */ + ) { + return $every(this, callbackfn, arguments[1]); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.fill.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.fill.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.P, 'Array', { + fill: __webpack_require__(/*! ./_array-fill */ "./node_modules/core-js/modules/_array-fill.js") +}); + +__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('fill'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.filter.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.filter.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $filter = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(2); + +$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].filter, true), 'Array', { + // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg]) + filter: function filter(callbackfn + /* , thisArg */ + ) { + return $filter(this, callbackfn, arguments[1]); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.find-index.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.find-index.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined) + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $find = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(6); + +var KEY = 'findIndex'; +var forced = true; // Shouldn't skip holes + +if (KEY in []) Array(1)[KEY](function () { + forced = false; +}); +$export($export.P + $export.F * forced, 'Array', { + findIndex: function findIndex(callbackfn + /* , that = undefined */ + ) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")(KEY); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.find.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.find.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined) + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $find = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(5); + +var KEY = 'find'; +var forced = true; // Shouldn't skip holes + +if (KEY in []) Array(1)[KEY](function () { + forced = false; +}); +$export($export.P + $export.F * forced, 'Array', { + find: function find(callbackfn + /* , that = undefined */ + ) { + return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")(KEY); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.for-each.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.for-each.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $forEach = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(0); + +var STRICT = __webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].forEach, true); + +$export($export.P + $export.F * !STRICT, 'Array', { + // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg]) + forEach: function forEach(callbackfn + /* , thisArg */ + ) { + return $forEach(this, callbackfn, arguments[1]); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.from.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.from.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var call = __webpack_require__(/*! ./_iter-call */ "./node_modules/core-js/modules/_iter-call.js"); + +var isArrayIter = __webpack_require__(/*! ./_is-array-iter */ "./node_modules/core-js/modules/_is-array-iter.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var createProperty = __webpack_require__(/*! ./_create-property */ "./node_modules/core-js/modules/_create-property.js"); + +var getIterFn = __webpack_require__(/*! ./core.get-iterator-method */ "./node_modules/core-js/modules/core.get-iterator-method.js"); + +$export($export.S + $export.F * !__webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js")(function (iter) { + Array.from(iter); +}), 'Array', { + // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined) + from: function from(arrayLike + /* , mapfn = undefined, thisArg = undefined */ + ) { + var O = toObject(arrayLike); + var C = typeof this == 'function' ? this : Array; + var aLen = arguments.length; + var mapfn = aLen > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + var index = 0; + var iterFn = getIterFn(O); + var length, result, step, iterator; + if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); // if object isn't iterable or it's array with default iterator - use simple case + + if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { + for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { + createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); + } + } else { + length = toLength(O.length); + + for (result = new C(length); length > index; index++) { + createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + } + } + + result.length = index; + return result; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.index-of.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.index-of.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $indexOf = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(false); + +var $native = [].indexOf; +var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0; +$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")($native)), 'Array', { + // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex]) + indexOf: function indexOf(searchElement + /* , fromIndex = 0 */ + ) { + return NEGATIVE_ZERO // convert -0 to +0 + ? $native.apply(this, arguments) || 0 : $indexOf(this, searchElement, arguments[1]); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.is-array.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.is-array.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 22.1.2.2 / 15.4.3.2 Array.isArray(arg) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Array', { + isArray: __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.iterator.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.iterator.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var addToUnscopables = __webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js"); + +var step = __webpack_require__(/*! ./_iter-step */ "./node_modules/core-js/modules/_iter-step.js"); + +var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); + +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); // 22.1.3.4 Array.prototype.entries() +// 22.1.3.13 Array.prototype.keys() +// 22.1.3.29 Array.prototype.values() +// 22.1.3.30 Array.prototype[@@iterator]() + + +module.exports = __webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js")(Array, 'Array', function (iterated, kind) { + this._t = toIObject(iterated); // target + + this._i = 0; // next index + + this._k = kind; // kind + // 22.1.5.2.1 %ArrayIteratorPrototype%.next() +}, function () { + var O = this._t; + var kind = this._k; + var index = this._i++; + + if (!O || index >= O.length) { + this._t = undefined; + return step(1); + } + + if (kind == 'keys') return step(0, index); + if (kind == 'values') return step(0, O[index]); + return step(0, [index, O[index]]); +}, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) + +Iterators.Arguments = Iterators.Array; +addToUnscopables('keys'); +addToUnscopables('values'); +addToUnscopables('entries'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.join.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.join.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 22.1.3.13 Array.prototype.join(separator) + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var arrayJoin = [].join; // fallback for not array-like strings + +$export($export.P + $export.F * (__webpack_require__(/*! ./_iobject */ "./node_modules/core-js/modules/_iobject.js") != Object || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")(arrayJoin)), 'Array', { + join: function join(separator) { + return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.last-index-of.js": +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.last-index-of.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var $native = [].lastIndexOf; +var NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0; +$export($export.P + $export.F * (NEGATIVE_ZERO || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")($native)), 'Array', { + // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex]) + lastIndexOf: function lastIndexOf(searchElement + /* , fromIndex = @[*-1] */ + ) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0; + var O = toIObject(this); + var length = toLength(O.length); + var index = length - 1; + if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1])); + if (index < 0) index = length + index; + + for (; index >= 0; index--) { + if (index in O) if (O[index] === searchElement) return index || 0; + } + + return -1; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.map.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.map.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $map = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(1); + +$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].map, true), 'Array', { + // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg]) + map: function map(callbackfn + /* , thisArg */ + ) { + return $map(this, callbackfn, arguments[1]); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.of.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.of.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var createProperty = __webpack_require__(/*! ./_create-property */ "./node_modules/core-js/modules/_create-property.js"); // WebKit Array.of isn't generic + + +$export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + function F() { + /* empty */ + } + + return !(Array.of.call(F) instanceof F); +}), 'Array', { + // 22.1.2.3 Array.of( ...items) + of: function + /* ...args */ + of() { + var index = 0; + var aLen = arguments.length; + var result = new (typeof this == 'function' ? this : Array)(aLen); + + while (aLen > index) { + createProperty(result, index, arguments[index++]); + } + + result.length = aLen; + return result; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.reduce-right.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.reduce-right.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $reduce = __webpack_require__(/*! ./_array-reduce */ "./node_modules/core-js/modules/_array-reduce.js"); + +$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].reduceRight, true), 'Array', { + // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue]) + reduceRight: function reduceRight(callbackfn + /* , initialValue */ + ) { + return $reduce(this, callbackfn, arguments.length, arguments[1], true); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.reduce.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.reduce.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $reduce = __webpack_require__(/*! ./_array-reduce */ "./node_modules/core-js/modules/_array-reduce.js"); + +$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].reduce, true), 'Array', { + // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue]) + reduce: function reduce(callbackfn + /* , initialValue */ + ) { + return $reduce(this, callbackfn, arguments.length, arguments[1], false); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.slice.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.slice.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var html = __webpack_require__(/*! ./_html */ "./node_modules/core-js/modules/_html.js"); + +var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); + +var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var arraySlice = [].slice; // fallback for not array-like ES3 strings and DOM objects + +$export($export.P + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + if (html) arraySlice.call(html); +}), 'Array', { + slice: function slice(begin, end) { + var len = toLength(this.length); + var klass = cof(this); + end = end === undefined ? len : end; + if (klass == 'Array') return arraySlice.call(this, begin, end); + var start = toAbsoluteIndex(begin, len); + var upTo = toAbsoluteIndex(end, len); + var size = toLength(upTo - start); + var cloned = new Array(size); + var i = 0; + + for (; i < size; i++) { + cloned[i] = klass == 'String' ? this.charAt(start + i) : this[start + i]; + } + + return cloned; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.some.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.some.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $some = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(3); + +$export($export.P + $export.F * !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")([].some, true), 'Array', { + // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg]) + some: function some(callbackfn + /* , thisArg */ + ) { + return $some(this, callbackfn, arguments[1]); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.sort.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.sort.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var $sort = [].sort; +var test = [1, 2, 3]; +$export($export.P + $export.F * (fails(function () { + // IE8- + test.sort(undefined); +}) || !fails(function () { + // V8 bug + test.sort(null); // Old WebKit +}) || !__webpack_require__(/*! ./_strict-method */ "./node_modules/core-js/modules/_strict-method.js")($sort)), 'Array', { + // 22.1.3.25 Array.prototype.sort(comparefn) + sort: function sort(comparefn) { + return comparefn === undefined ? $sort.call(toObject(this)) : $sort.call(toObject(this), aFunction(comparefn)); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.array.species.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.array.species.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")('Array'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.date.now.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.date.now.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.3.3.1 / 15.9.4.4 Date.now() +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Date', { + now: function now() { + return new Date().getTime(); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.date.to-iso-string.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.date.to-iso-string.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString() +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toISOString = __webpack_require__(/*! ./_date-to-iso-string */ "./node_modules/core-js/modules/_date-to-iso-string.js"); // PhantomJS / old WebKit has a broken implementations + + +$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', { + toISOString: toISOString +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.date.to-json.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.date.to-json.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); + +$export($export.P + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + return new Date(NaN).toJSON() !== null || Date.prototype.toJSON.call({ + toISOString: function toISOString() { + return 1; + } + }) !== 1; +}), 'Date', { + // eslint-disable-next-line no-unused-vars + toJSON: function toJSON(key) { + var O = toObject(this); + var pv = toPrimitive(O); + return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString(); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.date.to-primitive.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.date.to-primitive.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var TO_PRIMITIVE = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toPrimitive'); + +var proto = Date.prototype; +if (!(TO_PRIMITIVE in proto)) __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")(proto, TO_PRIMITIVE, __webpack_require__(/*! ./_date-to-primitive */ "./node_modules/core-js/modules/_date-to-primitive.js")); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.date.to-string.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.date.to-string.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var DateProto = Date.prototype; +var INVALID_DATE = 'Invalid Date'; +var TO_STRING = 'toString'; +var $toString = DateProto[TO_STRING]; +var getTime = DateProto.getTime; + +if (new Date(NaN) + '' != INVALID_DATE) { + __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(DateProto, TO_STRING, function toString() { + var value = getTime.call(this); // eslint-disable-next-line no-self-compare + + return value === value ? $toString.call(this) : INVALID_DATE; + }); +} + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.function.bind.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.function.bind.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.P, 'Function', { + bind: __webpack_require__(/*! ./_bind */ "./node_modules/core-js/modules/_bind.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.function.has-instance.js": +/*!*******************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.function.has-instance.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var HAS_INSTANCE = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('hasInstance'); + +var FunctionProto = Function.prototype; // 19.2.3.6 Function.prototype[@@hasInstance](V) + +if (!(HAS_INSTANCE in FunctionProto)) __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f(FunctionProto, HAS_INSTANCE, { + value: function value(O) { + if (typeof this != 'function' || !isObject(O)) return false; + if (!isObject(this.prototype)) return O instanceof this; // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this: + + while (O = getPrototypeOf(O)) { + if (this.prototype === O) return true; + } + + return false; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.function.name.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.function.name.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; + +var FProto = Function.prototype; +var nameRE = /^\s*function ([^ (]*)/; +var NAME = 'name'; // 19.2.4.2 name + +NAME in FProto || __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && dP(FProto, NAME, { + configurable: true, + get: function get() { + try { + return ('' + this).match(nameRE)[1]; + } catch (e) { + return ''; + } + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.map.js": +/*!*************************************************!*\ + !*** ./node_modules/core-js/modules/es6.map.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var strong = __webpack_require__(/*! ./_collection-strong */ "./node_modules/core-js/modules/_collection-strong.js"); + +var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); + +var MAP = 'Map'; // 23.1 Map Objects + +module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(MAP, function (get) { + return function Map() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}, { + // 23.1.3.6 Map.prototype.get(key) + get: function get(key) { + var entry = strong.getEntry(validate(this, MAP), key); + return entry && entry.v; + }, + // 23.1.3.9 Map.prototype.set(key, value) + set: function set(key, value) { + return strong.def(validate(this, MAP), key === 0 ? 0 : key, value); + } +}, strong, true); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.acosh.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.acosh.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.3 Math.acosh(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var log1p = __webpack_require__(/*! ./_math-log1p */ "./node_modules/core-js/modules/_math-log1p.js"); + +var sqrt = Math.sqrt; +var $acosh = Math.acosh; +$export($export.S + $export.F * !($acosh // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509 +&& Math.floor($acosh(Number.MAX_VALUE)) == 710 // Tor Browser bug: Math.acosh(Infinity) -> NaN +&& $acosh(Infinity) == Infinity), 'Math', { + acosh: function acosh(x) { + return (x = +x) < 1 ? NaN : x > 94906265.62425156 ? Math.log(x) + Math.LN2 : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1)); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.asinh.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.asinh.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.5 Math.asinh(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $asinh = Math.asinh; + +function asinh(x) { + return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1)); +} // Tor Browser bug: Math.asinh(0) -> -0 + + +$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { + asinh: asinh +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.atanh.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.atanh.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.7 Math.atanh(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $atanh = Math.atanh; // Tor Browser bug: Math.atanh(-0) -> 0 + +$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', { + atanh: function atanh(x) { + return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.cbrt.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.cbrt.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.9 Math.cbrt(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var sign = __webpack_require__(/*! ./_math-sign */ "./node_modules/core-js/modules/_math-sign.js"); + +$export($export.S, 'Math', { + cbrt: function cbrt(x) { + return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.clz32.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.clz32.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.11 Math.clz32(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + clz32: function clz32(x) { + return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.cosh.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.cosh.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.12 Math.cosh(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var exp = Math.exp; +$export($export.S, 'Math', { + cosh: function cosh(x) { + return (exp(x = +x) + exp(-x)) / 2; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.expm1.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.expm1.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.14 Math.expm1(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $expm1 = __webpack_require__(/*! ./_math-expm1 */ "./node_modules/core-js/modules/_math-expm1.js"); + +$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { + expm1: $expm1 +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.fround.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.fround.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.16 Math.fround(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + fround: __webpack_require__(/*! ./_math-fround */ "./node_modules/core-js/modules/_math-fround.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.hypot.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.hypot.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.17 Math.hypot([value1[, value2[, … ]]]) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var abs = Math.abs; +$export($export.S, 'Math', { + hypot: function hypot(value1, value2) { + // eslint-disable-line no-unused-vars + var sum = 0; + var i = 0; + var aLen = arguments.length; + var larg = 0; + var arg, div; + + while (i < aLen) { + arg = abs(arguments[i++]); + + if (larg < arg) { + div = larg / arg; + sum = sum * div * div + 1; + larg = arg; + } else if (arg > 0) { + div = arg / larg; + sum += div * div; + } else sum += arg; + } + + return larg === Infinity ? Infinity : larg * Math.sqrt(sum); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.imul.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.imul.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.18 Math.imul(x, y) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $imul = Math.imul; // some WebKit versions fails with big numbers, some has wrong arity + +$export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + return $imul(0xffffffff, 5) != -5 || $imul.length != 2; +}), 'Math', { + imul: function imul(x, y) { + var UINT16 = 0xffff; + var xn = +x; + var yn = +y; + var xl = UINT16 & xn; + var yl = UINT16 & yn; + return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.log10.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.log10.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.21 Math.log10(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + log10: function log10(x) { + return Math.log(x) * Math.LOG10E; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.log1p.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.log1p.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.20 Math.log1p(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + log1p: __webpack_require__(/*! ./_math-log1p */ "./node_modules/core-js/modules/_math-log1p.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.log2.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.log2.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.22 Math.log2(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + log2: function log2(x) { + return Math.log(x) / Math.LN2; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.sign.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.sign.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.28 Math.sign(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + sign: __webpack_require__(/*! ./_math-sign */ "./node_modules/core-js/modules/_math-sign.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.sinh.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.sinh.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.30 Math.sinh(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var expm1 = __webpack_require__(/*! ./_math-expm1 */ "./node_modules/core-js/modules/_math-expm1.js"); + +var exp = Math.exp; // V8 near Chromium 38 has a problem with very small numbers + +$export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + return !Math.sinh(-2e-17) != -2e-17; +}), 'Math', { + sinh: function sinh(x) { + return Math.abs(x = +x) < 1 ? (expm1(x) - expm1(-x)) / 2 : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.tanh.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.tanh.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.33 Math.tanh(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var expm1 = __webpack_require__(/*! ./_math-expm1 */ "./node_modules/core-js/modules/_math-expm1.js"); + +var exp = Math.exp; +$export($export.S, 'Math', { + tanh: function tanh(x) { + var a = expm1(x = +x); + var b = expm1(-x); + return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x)); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.math.trunc.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.math.trunc.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.2.2.34 Math.trunc(x) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + trunc: function trunc(it) { + return (it > 0 ? Math.floor : Math.ceil)(it); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.constructor.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.constructor.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); + +var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js"); + +var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; + +var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f; + +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; + +var $trim = __webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js").trim; + +var NUMBER = 'Number'; +var $Number = global[NUMBER]; +var Base = $Number; +var proto = $Number.prototype; // Opera ~12 has broken Object#toString + +var BROKEN_COF = cof(__webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js")(proto)) == NUMBER; +var TRIM = ('trim' in String.prototype); // 7.1.3 ToNumber(argument) + +var toNumber = function toNumber(argument) { + var it = toPrimitive(argument, false); + + if (typeof it == 'string' && it.length > 2) { + it = TRIM ? it.trim() : $trim(it, 3); + var first = it.charCodeAt(0); + var third, radix, maxCode; + + if (first === 43 || first === 45) { + third = it.charCodeAt(2); + if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix + } else if (first === 48) { + switch (it.charCodeAt(1)) { + case 66: + case 98: + radix = 2; + maxCode = 49; + break; + // fast equal /^0b[01]+$/i + + case 79: + case 111: + radix = 8; + maxCode = 55; + break; + // fast equal /^0o[0-7]+$/i + + default: + return +it; + } + + for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) { + code = digits.charCodeAt(i); // parseInt parses a string to a first unavailable symbol + // but ToNumber should return NaN if a string contains unavailable symbols + + if (code < 48 || code > maxCode) return NaN; + } + + return parseInt(digits, radix); + } + } + + return +it; +}; + +if (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) { + $Number = function Number(value) { + var it = arguments.length < 1 ? 0 : value; + var that = this; + return that instanceof $Number // check on 1..constructor(foo) case + && (BROKEN_COF ? fails(function () { + proto.valueOf.call(that); + }) : cof(that) != NUMBER) ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it); + }; + + for (var keys = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") ? gOPN(Base) : ( // ES3: + 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' + // ES6 (in case, if modules with ES6 Number statics required before): + 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' + 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger').split(','), j = 0, key; keys.length > j; j++) { + if (has(Base, key = keys[j]) && !has($Number, key)) { + dP($Number, key, gOPD(Base, key)); + } + } + + $Number.prototype = proto; + proto.constructor = $Number; + + __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(global, NUMBER, $Number); +} + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.epsilon.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.epsilon.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.1 Number.EPSILON +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Number', { + EPSILON: Math.pow(2, -52) +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.is-finite.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.is-finite.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.2 Number.isFinite(number) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var _isFinite = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").isFinite; + +$export($export.S, 'Number', { + isFinite: function isFinite(it) { + return typeof it == 'number' && _isFinite(it); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.is-integer.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.is-integer.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.3 Number.isInteger(number) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Number', { + isInteger: __webpack_require__(/*! ./_is-integer */ "./node_modules/core-js/modules/_is-integer.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.is-nan.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.is-nan.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.4 Number.isNaN(number) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Number', { + isNaN: function isNaN(number) { + // eslint-disable-next-line no-self-compare + return number != number; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.is-safe-integer.js": +/*!********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.is-safe-integer.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.5 Number.isSafeInteger(number) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var isInteger = __webpack_require__(/*! ./_is-integer */ "./node_modules/core-js/modules/_is-integer.js"); + +var abs = Math.abs; +$export($export.S, 'Number', { + isSafeInteger: function isSafeInteger(number) { + return isInteger(number) && abs(number) <= 0x1fffffffffffff; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.max-safe-integer.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.max-safe-integer.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.6 Number.MAX_SAFE_INTEGER +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Number', { + MAX_SAFE_INTEGER: 0x1fffffffffffff +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.min-safe-integer.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.min-safe-integer.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 20.1.2.10 Number.MIN_SAFE_INTEGER +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Number', { + MIN_SAFE_INTEGER: -0x1fffffffffffff +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.parse-float.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.parse-float.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $parseFloat = __webpack_require__(/*! ./_parse-float */ "./node_modules/core-js/modules/_parse-float.js"); // 20.1.2.12 Number.parseFloat(string) + + +$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { + parseFloat: $parseFloat +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.parse-int.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.parse-int.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $parseInt = __webpack_require__(/*! ./_parse-int */ "./node_modules/core-js/modules/_parse-int.js"); // 20.1.2.13 Number.parseInt(string, radix) + + +$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { + parseInt: $parseInt +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.to-fixed.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.to-fixed.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var aNumberValue = __webpack_require__(/*! ./_a-number-value */ "./node_modules/core-js/modules/_a-number-value.js"); + +var repeat = __webpack_require__(/*! ./_string-repeat */ "./node_modules/core-js/modules/_string-repeat.js"); + +var $toFixed = 1.0.toFixed; +var floor = Math.floor; +var data = [0, 0, 0, 0, 0, 0]; +var ERROR = 'Number.toFixed: incorrect invocation!'; +var ZERO = '0'; + +var multiply = function multiply(n, c) { + var i = -1; + var c2 = c; + + while (++i < 6) { + c2 += n * data[i]; + data[i] = c2 % 1e7; + c2 = floor(c2 / 1e7); + } +}; + +var divide = function divide(n) { + var i = 6; + var c = 0; + + while (--i >= 0) { + c += data[i]; + data[i] = floor(c / n); + c = c % n * 1e7; + } +}; + +var numToString = function numToString() { + var i = 6; + var s = ''; + + while (--i >= 0) { + if (s !== '' || i === 0 || data[i] !== 0) { + var t = String(data[i]); + s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t; + } + } + + return s; +}; + +var pow = function pow(x, n, acc) { + return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc); +}; + +var log = function log(x) { + var n = 0; + var x2 = x; + + while (x2 >= 4096) { + n += 12; + x2 /= 4096; + } + + while (x2 >= 2) { + n += 1; + x2 /= 2; + } + + return n; +}; + +$export($export.P + $export.F * (!!$toFixed && (0.00008.toFixed(3) !== '0.000' || 0.9.toFixed(0) !== '1' || 1.255.toFixed(2) !== '1.25' || 1000000000000000128.0.toFixed(0) !== '1000000000000000128') || !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + // V8 ~ Android 4.3- + $toFixed.call({}); +})), 'Number', { + toFixed: function toFixed(fractionDigits) { + var x = aNumberValue(this, ERROR); + var f = toInteger(fractionDigits); + var s = ''; + var m = ZERO; + var e, z, j, k; + if (f < 0 || f > 20) throw RangeError(ERROR); // eslint-disable-next-line no-self-compare + + if (x != x) return 'NaN'; + if (x <= -1e21 || x >= 1e21) return String(x); + + if (x < 0) { + s = '-'; + x = -x; + } + + if (x > 1e-21) { + e = log(x * pow(2, 69, 1)) - 69; + z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1); + z *= 0x10000000000000; + e = 52 - e; + + if (e > 0) { + multiply(0, z); + j = f; + + while (j >= 7) { + multiply(1e7, 0); + j -= 7; + } + + multiply(pow(10, j, 1), 0); + j = e - 1; + + while (j >= 23) { + divide(1 << 23); + j -= 23; + } + + divide(1 << j); + multiply(1, 1); + divide(2); + m = numToString(); + } else { + multiply(0, z); + multiply(1 << -e, 0); + m = numToString() + repeat.call(ZERO, f); + } + } + + if (f > 0) { + k = m.length; + m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f)); + } else { + m = s + m; + } + + return m; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.number.to-precision.js": +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.number.to-precision.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var aNumberValue = __webpack_require__(/*! ./_a-number-value */ "./node_modules/core-js/modules/_a-number-value.js"); + +var $toPrecision = 1.0.toPrecision; +$export($export.P + $export.F * ($fails(function () { + // IE7- + return $toPrecision.call(1, undefined) !== '1'; +}) || !$fails(function () { + // V8 ~ Android 4.3- + $toPrecision.call({}); +})), 'Number', { + toPrecision: function toPrecision(precision) { + var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!'); + return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.assign.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.assign.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.1 Object.assign(target, source) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S + $export.F, 'Object', { + assign: __webpack_require__(/*! ./_object-assign */ "./node_modules/core-js/modules/_object-assign.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.create.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.create.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) + + +$export($export.S, 'Object', { + create: __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.define-properties.js": +/*!**********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.define-properties.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); // 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties) + + +$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"), 'Object', { + defineProperties: __webpack_require__(/*! ./_object-dps */ "./node_modules/core-js/modules/_object-dps.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.define-property.js": +/*!********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.define-property.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); // 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) + + +$export($export.S + $export.F * !__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"), 'Object', { + defineProperty: __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.freeze.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.freeze.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.5 Object.freeze(O) +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").onFreeze; + +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('freeze', function ($freeze) { + return function freeze(it) { + return $freeze && isObject(it) ? $freeze(meta(it)) : it; + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js": +/*!********************************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js ***! + \********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var $getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f; + +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('getOwnPropertyDescriptor', function () { + return function getOwnPropertyDescriptor(it, key) { + return $getOwnPropertyDescriptor(toIObject(it), key); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.get-own-property-names.js": +/*!***************************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.get-own-property-names.js ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.7 Object.getOwnPropertyNames(O) +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('getOwnPropertyNames', function () { + return __webpack_require__(/*! ./_object-gopn-ext */ "./node_modules/core-js/modules/_object-gopn-ext.js").f; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.get-prototype-of.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.get-prototype-of.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.9 Object.getPrototypeOf(O) +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var $getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('getPrototypeOf', function () { + return function getPrototypeOf(it) { + return $getPrototypeOf(toObject(it)); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.is-extensible.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.is-extensible.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.11 Object.isExtensible(O) +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('isExtensible', function ($isExtensible) { + return function isExtensible(it) { + return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false; + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.is-frozen.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.is-frozen.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.12 Object.isFrozen(O) +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('isFrozen', function ($isFrozen) { + return function isFrozen(it) { + return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true; + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.is-sealed.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.is-sealed.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.13 Object.isSealed(O) +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('isSealed', function ($isSealed) { + return function isSealed(it) { + return isObject(it) ? $isSealed ? $isSealed(it) : false : true; + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.is.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.is.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.10 Object.is(value1, value2) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Object', { + is: __webpack_require__(/*! ./_same-value */ "./node_modules/core-js/modules/_same-value.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.keys.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.keys.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.14 Object.keys(O) +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var $keys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); + +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('keys', function () { + return function keys(it) { + return $keys(toObject(it)); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.prevent-extensions.js": +/*!***********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.prevent-extensions.js ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.15 Object.preventExtensions(O) +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").onFreeze; + +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('preventExtensions', function ($preventExtensions) { + return function preventExtensions(it) { + return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it; + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.seal.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.seal.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.2.17 Object.seal(O) +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").onFreeze; + +__webpack_require__(/*! ./_object-sap */ "./node_modules/core-js/modules/_object-sap.js")('seal', function ($seal) { + return function seal(it) { + return $seal && isObject(it) ? $seal(meta(it)) : it; + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.set-prototype-of.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.set-prototype-of.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 19.1.3.19 Object.setPrototypeOf(O, proto) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Object', { + setPrototypeOf: __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js").set +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.object.to-string.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.object.to-string.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 19.1.3.6 Object.prototype.toString() + +var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); + +var test = {}; +test[__webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('toStringTag')] = 'z'; + +if (test + '' != '[object z]') { + __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(Object.prototype, 'toString', function toString() { + return '[object ' + classof(this) + ']'; + }, true); +} + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.parse-float.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.parse-float.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $parseFloat = __webpack_require__(/*! ./_parse-float */ "./node_modules/core-js/modules/_parse-float.js"); // 18.2.4 parseFloat(string) + + +$export($export.G + $export.F * (parseFloat != $parseFloat), { + parseFloat: $parseFloat +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.parse-int.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.parse-int.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $parseInt = __webpack_require__(/*! ./_parse-int */ "./node_modules/core-js/modules/_parse-int.js"); // 18.2.5 parseInt(string, radix) + + +$export($export.G + $export.F * (parseInt != $parseInt), { + parseInt: $parseInt +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.promise.js": +/*!*****************************************************!*\ + !*** ./node_modules/core-js/modules/es6.promise.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var LIBRARY = __webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js"); + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var ctx = __webpack_require__(/*! ./_ctx */ "./node_modules/core-js/modules/_ctx.js"); + +var classof = __webpack_require__(/*! ./_classof */ "./node_modules/core-js/modules/_classof.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); + +var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); + +var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js"); + +var task = __webpack_require__(/*! ./_task */ "./node_modules/core-js/modules/_task.js").set; + +var microtask = __webpack_require__(/*! ./_microtask */ "./node_modules/core-js/modules/_microtask.js")(); + +var newPromiseCapabilityModule = __webpack_require__(/*! ./_new-promise-capability */ "./node_modules/core-js/modules/_new-promise-capability.js"); + +var perform = __webpack_require__(/*! ./_perform */ "./node_modules/core-js/modules/_perform.js"); + +var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js"); + +var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "./node_modules/core-js/modules/_promise-resolve.js"); + +var PROMISE = 'Promise'; +var TypeError = global.TypeError; +var process = global.process; +var versions = process && process.versions; +var v8 = versions && versions.v8 || ''; +var $Promise = global[PROMISE]; +var isNode = classof(process) == 'process'; + +var empty = function empty() { + /* empty */ +}; + +var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; +var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; +var USE_NATIVE = !!function () { + try { + // correct subclassing with @@species support + var promise = $Promise.resolve(1); + + var FakePromise = (promise.constructor = {})[__webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('species')] = function (exec) { + exec(empty, empty); + }; // unhandled rejections tracking support, NodeJS Promise without it fails @@species test + + + return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // we can't detect it synchronously, so just check versions + && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; + } catch (e) { + /* empty */ + } +}(); // helpers + +var isThenable = function isThenable(it) { + var then; + return isObject(it) && typeof (then = it.then) == 'function' ? then : false; +}; + +var notify = function notify(promise, isReject) { + if (promise._n) return; + promise._n = true; + var chain = promise._c; + microtask(function () { + var value = promise._v; + var ok = promise._s == 1; + var i = 0; + + var run = function run(reaction) { + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + + try { + if (handler) { + if (!ok) { + if (promise._h == 2) onHandleUnhandled(promise); + promise._h = 1; + } + + if (handler === true) result = value;else { + if (domain) domain.enter(); + result = handler(value); // may throw + + if (domain) { + domain.exit(); + exited = true; + } + } + + if (result === reaction.promise) { + reject(TypeError('Promise-chain cycle')); + } else if (then = isThenable(result)) { + then.call(result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (e) { + if (domain && !exited) domain.exit(); + reject(e); + } + }; + + while (chain.length > i) { + run(chain[i++]); + } // variable length - can't use forEach + + + promise._c = []; + promise._n = false; + if (isReject && !promise._h) onUnhandled(promise); + }); +}; + +var onUnhandled = function onUnhandled(promise) { + task.call(global, function () { + var value = promise._v; + var unhandled = isUnhandled(promise); + var result, handler, console; + + if (unhandled) { + result = perform(function () { + if (isNode) { + process.emit('unhandledRejection', value, promise); + } else if (handler = global.onunhandledrejection) { + handler({ + promise: promise, + reason: value + }); + } else if ((console = global.console) && console.error) { + console.error('Unhandled promise rejection', value); + } + }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + + promise._h = isNode || isUnhandled(promise) ? 2 : 1; + } + + promise._a = undefined; + if (unhandled && result.e) throw result.v; + }); +}; + +var isUnhandled = function isUnhandled(promise) { + return promise._h !== 1 && (promise._a || promise._c).length === 0; +}; + +var onHandleUnhandled = function onHandleUnhandled(promise) { + task.call(global, function () { + var handler; + + if (isNode) { + process.emit('rejectionHandled', promise); + } else if (handler = global.onrejectionhandled) { + handler({ + promise: promise, + reason: promise._v + }); + } + }); +}; + +var $reject = function $reject(value) { + var promise = this; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; // unwrap + + promise._v = value; + promise._s = 2; + if (!promise._a) promise._a = promise._c.slice(); + notify(promise, true); +}; + +var $resolve = function $resolve(value) { + var promise = this; + var then; + if (promise._d) return; + promise._d = true; + promise = promise._w || promise; // unwrap + + try { + if (promise === value) throw TypeError("Promise can't be resolved itself"); + + if (then = isThenable(value)) { + microtask(function () { + var wrapper = { + _w: promise, + _d: false + }; // wrap + + try { + then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); + } catch (e) { + $reject.call(wrapper, e); + } + }); + } else { + promise._v = value; + promise._s = 1; + notify(promise, false); + } + } catch (e) { + $reject.call({ + _w: promise, + _d: false + }, e); // wrap + } +}; // constructor polyfill + + +if (!USE_NATIVE) { + // 25.4.3.1 Promise(executor) + $Promise = function Promise(executor) { + anInstance(this, $Promise, PROMISE, '_h'); + aFunction(executor); + Internal.call(this); + + try { + executor(ctx($resolve, this, 1), ctx($reject, this, 1)); + } catch (err) { + $reject.call(this, err); + } + }; // eslint-disable-next-line no-unused-vars + + + Internal = function Promise(executor) { + this._c = []; // <- awaiting reactions + + this._a = undefined; // <- checked in isUnhandled reactions + + this._s = 0; // <- state + + this._d = false; // <- done + + this._v = undefined; // <- value + + this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled + + this._n = false; // <- notify + }; + + Internal.prototype = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js")($Promise.prototype, { + // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) + then: function then(onFulfilled, onRejected) { + var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); + reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; + reaction.fail = typeof onRejected == 'function' && onRejected; + reaction.domain = isNode ? process.domain : undefined; + + this._c.push(reaction); + + if (this._a) this._a.push(reaction); + if (this._s) notify(this, false); + return reaction.promise; + }, + // 25.4.5.1 Promise.prototype.catch(onRejected) + 'catch': function _catch(onRejected) { + return this.then(undefined, onRejected); + } + }); + + OwnPromiseCapability = function OwnPromiseCapability() { + var promise = new Internal(); + this.promise = promise; + this.resolve = ctx($resolve, promise, 1); + this.reject = ctx($reject, promise, 1); + }; + + newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { + return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { + Promise: $Promise +}); + +__webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js")($Promise, PROMISE); + +__webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")(PROMISE); + +Wrapper = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js")[PROMISE]; // statics + +$export($export.S + $export.F * !USE_NATIVE, PROMISE, { + // 25.4.4.5 Promise.reject(r) + reject: function reject(r) { + var capability = newPromiseCapability(this); + var $$reject = capability.reject; + $$reject(r); + return capability.promise; + } +}); +$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { + // 25.4.4.6 Promise.resolve(x) + resolve: function resolve(x) { + return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); + } +}); +$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(/*! ./_iter-detect */ "./node_modules/core-js/modules/_iter-detect.js")(function (iter) { + $Promise.all(iter)['catch'](empty); +})), PROMISE, { + // 25.4.4.1 Promise.all(iterable) + all: function all(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform(function () { + var values = []; + var index = 0; + var remaining = 1; + forOf(iterable, false, function (promise) { + var $index = index++; + var alreadyCalled = false; + values.push(undefined); + remaining++; + C.resolve(promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[$index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.e) reject(result.v); + return capability.promise; + }, + // 25.4.4.4 Promise.race(iterable) + race: function race(iterable) { + var C = this; + var capability = newPromiseCapability(C); + var reject = capability.reject; + var result = perform(function () { + forOf(iterable, false, function (promise) { + C.resolve(promise).then(capability.resolve, reject); + }); + }); + if (result.e) reject(result.v); + return capability.promise; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.apply.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.apply.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.1 Reflect.apply(target, thisArgument, argumentsList) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var rApply = (__webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Reflect || {}).apply; +var fApply = Function.apply; // MS Edge argumentsList argument is optional + +$export($export.S + $export.F * !__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + rApply(function () { + /* empty */ + }); +}), 'Reflect', { + apply: function apply(target, thisArgument, argumentsList) { + var T = aFunction(target); + var L = anObject(argumentsList); + return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.construct.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.construct.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.2 Reflect.construct(target, argumentsList [, newTarget]) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var bind = __webpack_require__(/*! ./_bind */ "./node_modules/core-js/modules/_bind.js"); + +var rConstruct = (__webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").Reflect || {}).construct; // MS Edge supports only 2 arguments and argumentsList argument is optional +// FF Nightly sets third argument as `new.target`, but does not create `this` from it + +var NEW_TARGET_BUG = fails(function () { + function F() { + /* empty */ + } + + return !(rConstruct(function () { + /* empty */ + }, [], F) instanceof F); +}); +var ARGS_BUG = !fails(function () { + rConstruct(function () { + /* empty */ + }); +}); +$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', { + construct: function construct(Target, args + /* , newTarget */ + ) { + aFunction(Target); + anObject(args); + var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]); + if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget); + + if (Target == newTarget) { + // w/o altered newTarget, optimization for 0-4 arguments + switch (args.length) { + case 0: + return new Target(); + + case 1: + return new Target(args[0]); + + case 2: + return new Target(args[0], args[1]); + + case 3: + return new Target(args[0], args[1], args[2]); + + case 4: + return new Target(args[0], args[1], args[2], args[3]); + } // w/o altered newTarget, lot of arguments case + + + var $args = [null]; + $args.push.apply($args, args); + return new (bind.apply(Target, $args))(); + } // with altered newTarget, not support built-in constructors + + + var proto = newTarget.prototype; + var instance = create(isObject(proto) ? proto : Object.prototype); + var result = Function.apply.call(Target, instance, args); + return isObject(result) ? result : instance; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.define-property.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.define-property.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes) +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); // MS Edge has broken Reflect.defineProperty - throwing instead of returning false + + +$export($export.S + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + // eslint-disable-next-line no-undef + Reflect.defineProperty(dP.f({}, 1, { + value: 1 + }), 1, { + value: 2 + }); +}), 'Reflect', { + defineProperty: function defineProperty(target, propertyKey, attributes) { + anObject(target); + propertyKey = toPrimitive(propertyKey, true); + anObject(attributes); + + try { + dP.f(target, propertyKey, attributes); + return true; + } catch (e) { + return false; + } + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.delete-property.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.delete-property.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.4 Reflect.deleteProperty(target, propertyKey) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f; + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +$export($export.S, 'Reflect', { + deleteProperty: function deleteProperty(target, propertyKey) { + var desc = gOPD(anObject(target), propertyKey); + return desc && !desc.configurable ? false : delete target[propertyKey]; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.enumerate.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.enumerate.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 26.1.5 Reflect.enumerate(target) + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var Enumerate = function Enumerate(iterated) { + this._t = anObject(iterated); // target + + this._i = 0; // next index + + var keys = this._k = []; // keys + + var key; + + for (key in iterated) { + keys.push(key); + } +}; + +__webpack_require__(/*! ./_iter-create */ "./node_modules/core-js/modules/_iter-create.js")(Enumerate, 'Object', function () { + var that = this; + var keys = that._k; + var key; + + do { + if (that._i >= keys.length) return { + value: undefined, + done: true + }; + } while (!((key = keys[that._i++]) in that._t)); + + return { + value: key, + done: false + }; +}); + +$export($export.S, 'Reflect', { + enumerate: function enumerate(target) { + return new Enumerate(target); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey) +var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +$export($export.S, 'Reflect', { + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) { + return gOPD.f(anObject(target), propertyKey); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.get-prototype-of.js": +/*!**********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.get-prototype-of.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.8 Reflect.getPrototypeOf(target) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var getProto = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +$export($export.S, 'Reflect', { + getPrototypeOf: function getPrototypeOf(target) { + return getProto(anObject(target)); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.get.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.get.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.6 Reflect.get(target, propertyKey [, receiver]) +var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); + +var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +function get(target, propertyKey +/* , receiver */ +) { + var receiver = arguments.length < 3 ? target : arguments[2]; + var desc, proto; + if (anObject(target) === receiver) return target[propertyKey]; + if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value') ? desc.value : desc.get !== undefined ? desc.get.call(receiver) : undefined; + if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver); +} + +$export($export.S, 'Reflect', { + get: get +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.has.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.has.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.9 Reflect.has(target, propertyKey) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Reflect', { + has: function has(target, propertyKey) { + return propertyKey in target; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.is-extensible.js": +/*!*******************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.is-extensible.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.10 Reflect.isExtensible(target) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var $isExtensible = Object.isExtensible; +$export($export.S, 'Reflect', { + isExtensible: function isExtensible(target) { + anObject(target); + return $isExtensible ? $isExtensible(target) : true; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.own-keys.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.own-keys.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.11 Reflect.ownKeys(target) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Reflect', { + ownKeys: __webpack_require__(/*! ./_own-keys */ "./node_modules/core-js/modules/_own-keys.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.prevent-extensions.js": +/*!************************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.prevent-extensions.js ***! + \************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.12 Reflect.preventExtensions(target) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var $preventExtensions = Object.preventExtensions; +$export($export.S, 'Reflect', { + preventExtensions: function preventExtensions(target) { + anObject(target); + + try { + if ($preventExtensions) $preventExtensions(target); + return true; + } catch (e) { + return false; + } + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.set-prototype-of.js": +/*!**********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.set-prototype-of.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.14 Reflect.setPrototypeOf(target, proto) +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var setProto = __webpack_require__(/*! ./_set-proto */ "./node_modules/core-js/modules/_set-proto.js"); + +if (setProto) $export($export.S, 'Reflect', { + setPrototypeOf: function setPrototypeOf(target, proto) { + setProto.check(target, proto); + + try { + setProto.set(target, proto); + return true; + } catch (e) { + return false; + } + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.reflect.set.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.reflect.set.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 26.1.13 Reflect.set(target, propertyKey, V [, receiver]) +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); + +var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); + +var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +function set(target, propertyKey, V +/* , receiver */ +) { + var receiver = arguments.length < 4 ? target : arguments[3]; + var ownDesc = gOPD.f(anObject(target), propertyKey); + var existingDescriptor, proto; + + if (!ownDesc) { + if (isObject(proto = getPrototypeOf(target))) { + return set(proto, propertyKey, V, receiver); + } + + ownDesc = createDesc(0); + } + + if (has(ownDesc, 'value')) { + if (ownDesc.writable === false || !isObject(receiver)) return false; + + if (existingDescriptor = gOPD.f(receiver, propertyKey)) { + if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false; + existingDescriptor.value = V; + dP.f(receiver, propertyKey, existingDescriptor); + } else dP.f(receiver, propertyKey, createDesc(0, V)); + + return true; + } + + return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true); +} + +$export($export.S, 'Reflect', { + set: set +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.regexp.constructor.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.regexp.constructor.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var inheritIfRequired = __webpack_require__(/*! ./_inherit-if-required */ "./node_modules/core-js/modules/_inherit-if-required.js"); + +var dP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f; + +var gOPN = __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f; + +var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js"); + +var $flags = __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js"); + +var $RegExp = global.RegExp; +var Base = $RegExp; +var proto = $RegExp.prototype; +var re1 = /a/g; +var re2 = /a/g; // "new" creates a new object, old webkit buggy here + +var CORRECT_NEW = new $RegExp(re1) !== re1; + +if (__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && (!CORRECT_NEW || __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + re2[__webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('match')] = false; // RegExp constructor can alter flags and IsRegExp works correct with @@match + + return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i'; +}))) { + $RegExp = function RegExp(p, f) { + var tiRE = this instanceof $RegExp; + var piRE = isRegExp(p); + var fiU = f === undefined; + return !tiRE && piRE && p.constructor === $RegExp && fiU ? p : inheritIfRequired(CORRECT_NEW ? new Base(piRE && !fiU ? p.source : p, f) : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f), tiRE ? this : proto, $RegExp); + }; + + var proxy = function proxy(key) { + key in $RegExp || dP($RegExp, key, { + configurable: true, + get: function get() { + return Base[key]; + }, + set: function set(it) { + Base[key] = it; + } + }); + }; + + for (var keys = gOPN(Base), i = 0; keys.length > i;) { + proxy(keys[i++]); + } + + proto.constructor = $RegExp; + $RegExp.prototype = proto; + + __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(global, 'RegExp', $RegExp); +} + +__webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")('RegExp'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.regexp.exec.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.regexp.exec.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "./node_modules/core-js/modules/_regexp-exec.js"); + +__webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js")({ + target: 'RegExp', + proto: true, + forced: regexpExec !== /./.exec +}, { + exec: regexpExec +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.regexp.flags.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.regexp.flags.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// 21.2.5.3 get RegExp.prototype.flags() +if (__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && /./g.flags != 'g') __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js").f(RegExp.prototype, 'flags', { + configurable: true, + get: __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.regexp.match.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.regexp.match.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "./node_modules/core-js/modules/_advance-string-index.js"); + +var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "./node_modules/core-js/modules/_regexp-exec-abstract.js"); // @@match logic + + +__webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('match', 1, function (defined, MATCH, $match, maybeCallNative) { + return [// `String.prototype.match` method + // https://tc39.github.io/ecma262/#sec-string.prototype.match + function match(regexp) { + var O = defined(this); + var fn = regexp == undefined ? undefined : regexp[MATCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O)); + }, // `RegExp.prototype[@@match]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match + function (regexp) { + var res = maybeCallNative($match, regexp, this); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + if (!rx.global) return regExpExec(rx, S); + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + var A = []; + var n = 0; + var result; + + while ((result = regExpExec(rx, S)) !== null) { + var matchStr = String(result[0]); + A[n] = matchStr; + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + n++; + } + + return n === 0 ? null : A; + }]; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.regexp.replace.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.regexp.replace.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "./node_modules/core-js/modules/_advance-string-index.js"); + +var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "./node_modules/core-js/modules/_regexp-exec-abstract.js"); + +var max = Math.max; +var min = Math.min; +var floor = Math.floor; +var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g; +var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g; + +var maybeToString = function maybeToString(it) { + return it === undefined ? it : String(it); +}; // @@replace logic + + +__webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) { + return [// `String.prototype.replace` method + // https://tc39.github.io/ecma262/#sec-string.prototype.replace + function replace(searchValue, replaceValue) { + var O = defined(this); + var fn = searchValue == undefined ? undefined : searchValue[REPLACE]; + return fn !== undefined ? fn.call(searchValue, O, replaceValue) : $replace.call(String(O), searchValue, replaceValue); + }, // `RegExp.prototype[@@replace]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace + function (regexp, replaceValue) { + var res = maybeCallNative($replace, regexp, this, replaceValue); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + var functionalReplace = typeof replaceValue === 'function'; + if (!functionalReplace) replaceValue = String(replaceValue); + var global = rx.global; + + if (global) { + var fullUnicode = rx.unicode; + rx.lastIndex = 0; + } + + var results = []; + + while (true) { + var result = regExpExec(rx, S); + if (result === null) break; + results.push(result); + if (!global) break; + var matchStr = String(result[0]); + if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode); + } + + var accumulatedResult = ''; + var nextSourcePosition = 0; + + for (var i = 0; i < results.length; i++) { + result = results[i]; + var matched = String(result[0]); + var position = max(min(toInteger(result.index), S.length), 0); + var captures = []; // NOTE: This is equivalent to + // captures = result.slice(1).map(maybeToString) + // but for some reason `nativeSlice.call(result, 1, result.length)` (called in + // the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and + // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it. + + for (var j = 1; j < result.length; j++) { + captures.push(maybeToString(result[j])); + } + + var namedCaptures = result.groups; + + if (functionalReplace) { + var replacerArgs = [matched].concat(captures, position, S); + if (namedCaptures !== undefined) replacerArgs.push(namedCaptures); + var replacement = String(replaceValue.apply(undefined, replacerArgs)); + } else { + replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue); + } + + if (position >= nextSourcePosition) { + accumulatedResult += S.slice(nextSourcePosition, position) + replacement; + nextSourcePosition = position + matched.length; + } + } + + return accumulatedResult + S.slice(nextSourcePosition); + }]; // https://tc39.github.io/ecma262/#sec-getsubstitution + + function getSubstitution(matched, str, position, captures, namedCaptures, replacement) { + var tailPos = position + matched.length; + var m = captures.length; + var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED; + + if (namedCaptures !== undefined) { + namedCaptures = toObject(namedCaptures); + symbols = SUBSTITUTION_SYMBOLS; + } + + return $replace.call(replacement, symbols, function (match, ch) { + var capture; + + switch (ch.charAt(0)) { + case '$': + return '$'; + + case '&': + return matched; + + case '`': + return str.slice(0, position); + + case "'": + return str.slice(tailPos); + + case '<': + capture = namedCaptures[ch.slice(1, -1)]; + break; + + default: + // \d\d? + var n = +ch; + if (n === 0) return match; + + if (n > m) { + var f = floor(n / 10); + if (f === 0) return match; + if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1); + return match; + } + + capture = captures[n - 1]; + } + + return capture === undefined ? '' : capture; + }); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.regexp.search.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.regexp.search.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var sameValue = __webpack_require__(/*! ./_same-value */ "./node_modules/core-js/modules/_same-value.js"); + +var regExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "./node_modules/core-js/modules/_regexp-exec-abstract.js"); // @@search logic + + +__webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('search', 1, function (defined, SEARCH, $search, maybeCallNative) { + return [// `String.prototype.search` method + // https://tc39.github.io/ecma262/#sec-string.prototype.search + function search(regexp) { + var O = defined(this); + var fn = regexp == undefined ? undefined : regexp[SEARCH]; + return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O)); + }, // `RegExp.prototype[@@search]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search + function (regexp) { + var res = maybeCallNative($search, regexp, this); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + var previousLastIndex = rx.lastIndex; + if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0; + var result = regExpExec(rx, S); + if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex; + return result === null ? -1 : result.index; + }]; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.regexp.split.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.regexp.split.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js"); + +var advanceStringIndex = __webpack_require__(/*! ./_advance-string-index */ "./node_modules/core-js/modules/_advance-string-index.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var callRegExpExec = __webpack_require__(/*! ./_regexp-exec-abstract */ "./node_modules/core-js/modules/_regexp-exec-abstract.js"); + +var regexpExec = __webpack_require__(/*! ./_regexp-exec */ "./node_modules/core-js/modules/_regexp-exec.js"); + +var fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var $min = Math.min; +var $push = [].push; +var $SPLIT = 'split'; +var LENGTH = 'length'; +var LAST_INDEX = 'lastIndex'; +var MAX_UINT32 = 0xffffffff; // babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError + +var SUPPORTS_Y = !fails(function () { + RegExp(MAX_UINT32, 'y'); +}); // @@split logic + +__webpack_require__(/*! ./_fix-re-wks */ "./node_modules/core-js/modules/_fix-re-wks.js")('split', 2, function (defined, SPLIT, $split, maybeCallNative) { + var internalSplit; + + if ('abbc'[$SPLIT](/(b)*/)[1] == 'c' || 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 || 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 || '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 || '.'[$SPLIT](/()()/)[LENGTH] > 1 || ''[$SPLIT](/.?/)[LENGTH]) { + // based on es5-shim implementation, need to rework it + internalSplit = function internalSplit(separator, limit) { + var string = String(this); + if (separator === undefined && limit === 0) return []; // If `separator` is not a regex, use native split + + if (!isRegExp(separator)) return $split.call(string, separator, limit); + var output = []; + var flags = (separator.ignoreCase ? 'i' : '') + (separator.multiline ? 'm' : '') + (separator.unicode ? 'u' : '') + (separator.sticky ? 'y' : ''); + var lastLastIndex = 0; + var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0; // Make `global` and avoid `lastIndex` issues by working with a copy + + var separatorCopy = new RegExp(separator.source, flags + 'g'); + var match, lastIndex, lastLength; + + while (match = regexpExec.call(separatorCopy, string)) { + lastIndex = separatorCopy[LAST_INDEX]; + + if (lastIndex > lastLastIndex) { + output.push(string.slice(lastLastIndex, match.index)); + if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1)); + lastLength = match[0][LENGTH]; + lastLastIndex = lastIndex; + if (output[LENGTH] >= splitLimit) break; + } + + if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop + } + + if (lastLastIndex === string[LENGTH]) { + if (lastLength || !separatorCopy.test('')) output.push(''); + } else output.push(string.slice(lastLastIndex)); + + return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output; + }; // Chakra, V8 + + } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) { + internalSplit = function internalSplit(separator, limit) { + return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit); + }; + } else { + internalSplit = $split; + } + + return [// `String.prototype.split` method + // https://tc39.github.io/ecma262/#sec-string.prototype.split + function split(separator, limit) { + var O = defined(this); + var splitter = separator == undefined ? undefined : separator[SPLIT]; + return splitter !== undefined ? splitter.call(separator, O, limit) : internalSplit.call(String(O), separator, limit); + }, // `RegExp.prototype[@@split]` method + // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split + // + // NOTE: This cannot be properly polyfilled in engines that don't support + // the 'y' flag. + function (regexp, limit) { + var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split); + if (res.done) return res.value; + var rx = anObject(regexp); + var S = String(this); + var C = speciesConstructor(rx, RegExp); + var unicodeMatching = rx.unicode; + var flags = (rx.ignoreCase ? 'i' : '') + (rx.multiline ? 'm' : '') + (rx.unicode ? 'u' : '') + (SUPPORTS_Y ? 'y' : 'g'); // ^(? + rx + ) is needed, in combination with some S slicing, to + // simulate the 'y' flag. + + var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags); + var lim = limit === undefined ? MAX_UINT32 : limit >>> 0; + if (lim === 0) return []; + if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : []; + var p = 0; + var q = 0; + var A = []; + + while (q < S.length) { + splitter.lastIndex = SUPPORTS_Y ? q : 0; + var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q)); + var e; + + if (z === null || (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p) { + q = advanceStringIndex(S, q, unicodeMatching); + } else { + A.push(S.slice(p, q)); + if (A.length === lim) return A; + + for (var i = 1; i <= z.length - 1; i++) { + A.push(z[i]); + if (A.length === lim) return A; + } + + q = p = e; + } + } + + A.push(S.slice(p)); + return A; + }]; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.regexp.to-string.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.regexp.to-string.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +__webpack_require__(/*! ./es6.regexp.flags */ "./node_modules/core-js/modules/es6.regexp.flags.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var $flags = __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js"); + +var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); + +var TO_STRING = 'toString'; +var $toString = /./[TO_STRING]; + +var define = function define(fn) { + __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js")(RegExp.prototype, TO_STRING, fn, true); +}; // 21.2.5.14 RegExp.prototype.toString() + + +if (__webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + return $toString.call({ + source: 'a', + flags: 'b' + }) != '/a/b'; +})) { + define(function toString() { + var R = anObject(this); + return '/'.concat(R.source, '/', 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined); + }); // FF44- RegExp#toString has a wrong name +} else if ($toString.name != TO_STRING) { + define(function toString() { + return $toString.call(this); + }); +} + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.set.js": +/*!*************************************************!*\ + !*** ./node_modules/core-js/modules/es6.set.js ***! + \*************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var strong = __webpack_require__(/*! ./_collection-strong */ "./node_modules/core-js/modules/_collection-strong.js"); + +var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); + +var SET = 'Set'; // 23.2 Set Objects + +module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(SET, function (get) { + return function Set() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}, { + // 23.2.3.1 Set.prototype.add(value) + add: function add(value) { + return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value); + } +}, strong); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.anchor.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.anchor.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.2 String.prototype.anchor(name) + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('anchor', function (createHTML) { + return function anchor(name) { + return createHTML(this, 'a', 'name', name); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.big.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.big.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.3 String.prototype.big() + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('big', function (createHTML) { + return function big() { + return createHTML(this, 'big', '', ''); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.blink.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.blink.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.4 String.prototype.blink() + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('blink', function (createHTML) { + return function blink() { + return createHTML(this, 'blink', '', ''); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.bold.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.bold.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.5 String.prototype.bold() + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('bold', function (createHTML) { + return function bold() { + return createHTML(this, 'b', '', ''); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.code-point-at.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.code-point-at.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $at = __webpack_require__(/*! ./_string-at */ "./node_modules/core-js/modules/_string-at.js")(false); + +$export($export.P, 'String', { + // 21.1.3.3 String.prototype.codePointAt(pos) + codePointAt: function codePointAt(pos) { + return $at(this, pos); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.ends-with.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.ends-with.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition]) + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var context = __webpack_require__(/*! ./_string-context */ "./node_modules/core-js/modules/_string-context.js"); + +var ENDS_WITH = 'endsWith'; +var $endsWith = ''[ENDS_WITH]; +$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "./node_modules/core-js/modules/_fails-is-regexp.js")(ENDS_WITH), 'String', { + endsWith: function endsWith(searchString + /* , endPosition = @length */ + ) { + var that = context(this, searchString, ENDS_WITH); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = toLength(that.length); + var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); + var search = String(searchString); + return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.fixed.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.fixed.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.6 String.prototype.fixed() + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('fixed', function (createHTML) { + return function fixed() { + return createHTML(this, 'tt', '', ''); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.fontcolor.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.fontcolor.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.7 String.prototype.fontcolor(color) + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('fontcolor', function (createHTML) { + return function fontcolor(color) { + return createHTML(this, 'font', 'color', color); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.fontsize.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.fontsize.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.8 String.prototype.fontsize(size) + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('fontsize', function (createHTML) { + return function fontsize(size) { + return createHTML(this, 'font', 'size', size); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.from-code-point.js": +/*!********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.from-code-point.js ***! + \********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); + +var fromCharCode = String.fromCharCode; +var $fromCodePoint = String.fromCodePoint; // length should be 1, old FF problem + +$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { + // 21.1.2.2 String.fromCodePoint(...codePoints) + fromCodePoint: function fromCodePoint(x) { + // eslint-disable-line no-unused-vars + var res = []; + var aLen = arguments.length; + var i = 0; + var code; + + while (aLen > i) { + code = +arguments[i++]; + if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); + res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); + } + + return res.join(''); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.includes.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.includes.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 21.1.3.7 String.prototype.includes(searchString, position = 0) + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var context = __webpack_require__(/*! ./_string-context */ "./node_modules/core-js/modules/_string-context.js"); + +var INCLUDES = 'includes'; +$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "./node_modules/core-js/modules/_fails-is-regexp.js")(INCLUDES), 'String', { + includes: function includes(searchString + /* , position = 0 */ + ) { + return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.italics.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.italics.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.9 String.prototype.italics() + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('italics', function (createHTML) { + return function italics() { + return createHTML(this, 'i', '', ''); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.iterator.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.iterator.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $at = __webpack_require__(/*! ./_string-at */ "./node_modules/core-js/modules/_string-at.js")(true); // 21.1.3.27 String.prototype[@@iterator]() + + +__webpack_require__(/*! ./_iter-define */ "./node_modules/core-js/modules/_iter-define.js")(String, 'String', function (iterated) { + this._t = String(iterated); // target + + this._i = 0; // next index + // 21.1.5.2.1 %StringIteratorPrototype%.next() +}, function () { + var O = this._t; + var index = this._i; + var point; + if (index >= O.length) return { + value: undefined, + done: true + }; + point = $at(O, index); + this._i += point.length; + return { + value: point, + done: false + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.link.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.link.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.10 String.prototype.link(url) + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('link', function (createHTML) { + return function link(url) { + return createHTML(this, 'a', 'href', url); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.raw.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.raw.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +$export($export.S, 'String', { + // 21.1.2.4 String.raw(callSite, ...substitutions) + raw: function raw(callSite) { + var tpl = toIObject(callSite.raw); + var len = toLength(tpl.length); + var aLen = arguments.length; + var res = []; + var i = 0; + + while (len > i) { + res.push(String(tpl[i++])); + if (i < aLen) res.push(String(arguments[i])); + } + + return res.join(''); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.repeat.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.repeat.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.P, 'String', { + // 21.1.3.13 String.prototype.repeat(count) + repeat: __webpack_require__(/*! ./_string-repeat */ "./node_modules/core-js/modules/_string-repeat.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.small.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.small.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.11 String.prototype.small() + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('small', function (createHTML) { + return function small() { + return createHTML(this, 'small', '', ''); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.starts-with.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.starts-with.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// 21.1.3.18 String.prototype.startsWith(searchString [, position ]) + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var context = __webpack_require__(/*! ./_string-context */ "./node_modules/core-js/modules/_string-context.js"); + +var STARTS_WITH = 'startsWith'; +var $startsWith = ''[STARTS_WITH]; +$export($export.P + $export.F * __webpack_require__(/*! ./_fails-is-regexp */ "./node_modules/core-js/modules/_fails-is-regexp.js")(STARTS_WITH), 'String', { + startsWith: function startsWith(searchString + /* , position = 0 */ + ) { + var that = context(this, searchString, STARTS_WITH); + var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); + var search = String(searchString); + return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.strike.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.strike.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.12 String.prototype.strike() + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('strike', function (createHTML) { + return function strike() { + return createHTML(this, 'strike', '', ''); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.sub.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.sub.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.13 String.prototype.sub() + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('sub', function (createHTML) { + return function sub() { + return createHTML(this, 'sub', '', ''); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.sup.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.sup.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // B.2.3.14 String.prototype.sup() + +__webpack_require__(/*! ./_string-html */ "./node_modules/core-js/modules/_string-html.js")('sup', function (createHTML) { + return function sup() { + return createHTML(this, 'sup', '', ''); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.string.trim.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es6.string.trim.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // 21.1.3.25 String.prototype.trim() + +__webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js")('trim', function ($trim) { + return function trim() { + return $trim(this, 3); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.symbol.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/es6.symbol.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // ECMAScript 6 symbols shim + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var has = __webpack_require__(/*! ./_has */ "./node_modules/core-js/modules/_has.js"); + +var DESCRIPTORS = __webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); + +var META = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js").KEY; + +var $fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var shared = __webpack_require__(/*! ./_shared */ "./node_modules/core-js/modules/_shared.js"); + +var setToStringTag = __webpack_require__(/*! ./_set-to-string-tag */ "./node_modules/core-js/modules/_set-to-string-tag.js"); + +var uid = __webpack_require__(/*! ./_uid */ "./node_modules/core-js/modules/_uid.js"); + +var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); + +var wksExt = __webpack_require__(/*! ./_wks-ext */ "./node_modules/core-js/modules/_wks-ext.js"); + +var wksDefine = __webpack_require__(/*! ./_wks-define */ "./node_modules/core-js/modules/_wks-define.js"); + +var enumKeys = __webpack_require__(/*! ./_enum-keys */ "./node_modules/core-js/modules/_enum-keys.js"); + +var isArray = __webpack_require__(/*! ./_is-array */ "./node_modules/core-js/modules/_is-array.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); + +var createDesc = __webpack_require__(/*! ./_property-desc */ "./node_modules/core-js/modules/_property-desc.js"); + +var _create = __webpack_require__(/*! ./_object-create */ "./node_modules/core-js/modules/_object-create.js"); + +var gOPNExt = __webpack_require__(/*! ./_object-gopn-ext */ "./node_modules/core-js/modules/_object-gopn-ext.js"); + +var $GOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); + +var $GOPS = __webpack_require__(/*! ./_object-gops */ "./node_modules/core-js/modules/_object-gops.js"); + +var $DP = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); + +var $keys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); + +var gOPD = $GOPD.f; +var dP = $DP.f; +var gOPN = gOPNExt.f; +var $Symbol = global.Symbol; +var $JSON = global.JSON; + +var _stringify = $JSON && $JSON.stringify; + +var PROTOTYPE = 'prototype'; +var HIDDEN = wks('_hidden'); +var TO_PRIMITIVE = wks('toPrimitive'); +var isEnum = {}.propertyIsEnumerable; +var SymbolRegistry = shared('symbol-registry'); +var AllSymbols = shared('symbols'); +var OPSymbols = shared('op-symbols'); +var ObjectProto = Object[PROTOTYPE]; +var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; +var QObject = global.QObject; // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 + +var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 + +var setSymbolDesc = DESCRIPTORS && $fails(function () { + return _create(dP({}, 'a', { + get: function get() { + return dP(this, 'a', { + value: 7 + }).a; + } + })).a != 7; +}) ? function (it, key, D) { + var protoDesc = gOPD(ObjectProto, key); + if (protoDesc) delete ObjectProto[key]; + dP(it, key, D); + if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); +} : dP; + +var wrap = function wrap(tag) { + var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); + + sym._k = tag; + return sym; +}; + +var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { + return _typeof(it) == 'symbol'; +} : function (it) { + return it instanceof $Symbol; +}; + +var $defineProperty = function defineProperty(it, key, D) { + if (it === ObjectProto) $defineProperty(OPSymbols, key, D); + anObject(it); + key = toPrimitive(key, true); + anObject(D); + + if (has(AllSymbols, key)) { + if (!D.enumerable) { + if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); + it[HIDDEN][key] = true; + } else { + if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; + D = _create(D, { + enumerable: createDesc(0, false) + }); + } + + return setSymbolDesc(it, key, D); + } + + return dP(it, key, D); +}; + +var $defineProperties = function defineProperties(it, P) { + anObject(it); + var keys = enumKeys(P = toIObject(P)); + var i = 0; + var l = keys.length; + var key; + + while (l > i) { + $defineProperty(it, key = keys[i++], P[key]); + } + + return it; +}; + +var $create = function create(it, P) { + return P === undefined ? _create(it) : $defineProperties(_create(it), P); +}; + +var $propertyIsEnumerable = function propertyIsEnumerable(key) { + var E = isEnum.call(this, key = toPrimitive(key, true)); + if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; + return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; +}; + +var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { + it = toIObject(it); + key = toPrimitive(key, true); + if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; + var D = gOPD(it, key); + if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; + return D; +}; + +var $getOwnPropertyNames = function getOwnPropertyNames(it) { + var names = gOPN(toIObject(it)); + var result = []; + var i = 0; + var key; + + while (names.length > i) { + if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); + } + + return result; +}; + +var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { + var IS_OP = it === ObjectProto; + var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); + var result = []; + var i = 0; + var key; + + while (names.length > i) { + if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); + } + + return result; +}; // 19.4.1.1 Symbol([description]) + + +if (!USE_NATIVE) { + $Symbol = function _Symbol() { + if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); + var tag = uid(arguments.length > 0 ? arguments[0] : undefined); + + var $set = function $set(value) { + if (this === ObjectProto) $set.call(OPSymbols, value); + if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; + setSymbolDesc(this, tag, createDesc(1, value)); + }; + + if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { + configurable: true, + set: $set + }); + return wrap(tag); + }; + + redefine($Symbol[PROTOTYPE], 'toString', function toString() { + return this._k; + }); + $GOPD.f = $getOwnPropertyDescriptor; + $DP.f = $defineProperty; + __webpack_require__(/*! ./_object-gopn */ "./node_modules/core-js/modules/_object-gopn.js").f = gOPNExt.f = $getOwnPropertyNames; + __webpack_require__(/*! ./_object-pie */ "./node_modules/core-js/modules/_object-pie.js").f = $propertyIsEnumerable; + $GOPS.f = $getOwnPropertySymbols; + + if (DESCRIPTORS && !__webpack_require__(/*! ./_library */ "./node_modules/core-js/modules/_library.js")) { + redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); + } + + wksExt.f = function (name) { + return wrap(wks(name)); + }; +} + +$export($export.G + $export.W + $export.F * !USE_NATIVE, { + Symbol: $Symbol +}); + +for (var es6Symbols = // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 +'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { + wks(es6Symbols[j++]); +} + +for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { + wksDefine(wellKnownSymbols[k++]); +} + +$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { + // 19.4.2.1 Symbol.for(key) + 'for': function _for(key) { + return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); + }, + // 19.4.2.5 Symbol.keyFor(sym) + keyFor: function keyFor(sym) { + if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); + + for (var key in SymbolRegistry) { + if (SymbolRegistry[key] === sym) return key; + } + }, + useSetter: function useSetter() { + setter = true; + }, + useSimple: function useSimple() { + setter = false; + } +}); +$export($export.S + $export.F * !USE_NATIVE, 'Object', { + // 19.1.2.2 Object.create(O [, Properties]) + create: $create, + // 19.1.2.4 Object.defineProperty(O, P, Attributes) + defineProperty: $defineProperty, + // 19.1.2.3 Object.defineProperties(O, Properties) + defineProperties: $defineProperties, + // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) + getOwnPropertyDescriptor: $getOwnPropertyDescriptor, + // 19.1.2.7 Object.getOwnPropertyNames(O) + getOwnPropertyNames: $getOwnPropertyNames, + // 19.1.2.8 Object.getOwnPropertySymbols(O) + getOwnPropertySymbols: $getOwnPropertySymbols +}); // Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives +// https://bugs.chromium.org/p/v8/issues/detail?id=3443 + +var FAILS_ON_PRIMITIVES = $fails(function () { + $GOPS.f(1); +}); +$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + return $GOPS.f(toObject(it)); + } +}); // 24.3.2 JSON.stringify(value [, replacer [, space]]) + +$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { + var S = $Symbol(); // MS Edge converts symbol values to JSON as {} + // WebKit converts symbol values to JSON as null + // V8 throws on boxed symbols + + return _stringify([S]) != '[null]' || _stringify({ + a: S + }) != '{}' || _stringify(Object(S)) != '{}'; +})), 'JSON', { + stringify: function stringify(it) { + var args = [it]; + var i = 1; + var replacer, $replacer; + + while (arguments.length > i) { + args.push(arguments[i++]); + } + + $replacer = replacer = args[1]; + if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined + + if (!isArray(replacer)) replacer = function replacer(key, value) { + if (typeof $replacer == 'function') value = $replacer.call(this, key, value); + if (!isSymbol(value)) return value; + }; + args[1] = replacer; + return _stringify.apply($JSON, args); + } +}); // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) + +$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js")($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); // 19.4.3.5 Symbol.prototype[@@toStringTag] + +setToStringTag($Symbol, 'Symbol'); // 20.2.1.9 Math[@@toStringTag] + +setToStringTag(Math, 'Math', true); // 24.3.3 JSON[@@toStringTag] + +setToStringTag(global.JSON, 'JSON', true); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.array-buffer.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.array-buffer.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $typed = __webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js"); + +var buffer = __webpack_require__(/*! ./_typed-buffer */ "./node_modules/core-js/modules/_typed-buffer.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var toAbsoluteIndex = __webpack_require__(/*! ./_to-absolute-index */ "./node_modules/core-js/modules/_to-absolute-index.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var ArrayBuffer = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").ArrayBuffer; + +var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js"); + +var $ArrayBuffer = buffer.ArrayBuffer; +var $DataView = buffer.DataView; +var $isView = $typed.ABV && ArrayBuffer.isView; +var $slice = $ArrayBuffer.prototype.slice; +var VIEW = $typed.VIEW; +var ARRAY_BUFFER = 'ArrayBuffer'; +$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { + ArrayBuffer: $ArrayBuffer +}); +$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, { + // 24.1.3.1 ArrayBuffer.isView(arg) + isView: function isView(it) { + return $isView && $isView(it) || isObject(it) && VIEW in it; + } +}); +$export($export.P + $export.U + $export.F * __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js")(function () { + return !new $ArrayBuffer(2).slice(1, undefined).byteLength; +}), ARRAY_BUFFER, { + // 24.1.4.3 ArrayBuffer.prototype.slice(start, end) + slice: function slice(start, end) { + if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix + + var len = anObject(this).byteLength; + var first = toAbsoluteIndex(start, len); + var fin = toAbsoluteIndex(end === undefined ? len : end, len); + var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first)); + var viewS = new $DataView(this); + var viewT = new $DataView(result); + var index = 0; + + while (first < fin) { + viewT.setUint8(index++, viewS.getUint8(first++)); + } + + return result; + } +}); + +__webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")(ARRAY_BUFFER); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.data-view.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.data-view.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.G + $export.W + $export.F * !__webpack_require__(/*! ./_typed */ "./node_modules/core-js/modules/_typed.js").ABV, { + DataView: __webpack_require__(/*! ./_typed-buffer */ "./node_modules/core-js/modules/_typed-buffer.js").DataView +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.float32-array.js": +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.float32-array.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Float32', 4, function (init) { + return function Float32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.float64-array.js": +/*!*****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.float64-array.js ***! + \*****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Float64', 8, function (init) { + return function Float64Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.int16-array.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.int16-array.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Int16', 2, function (init) { + return function Int16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.int32-array.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.int32-array.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Int32', 4, function (init) { + return function Int32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.int8-array.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.int8-array.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Int8', 1, function (init) { + return function Int8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.uint16-array.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.uint16-array.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint16', 2, function (init) { + return function Uint16Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.uint32-array.js": +/*!****************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.uint32-array.js ***! + \****************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint32', 4, function (init) { + return function Uint32Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.uint8-array.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.uint8-array.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint8', 1, function (init) { + return function Uint8Array(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js": +/*!***********************************************************************!*\ + !*** ./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_typed-array */ "./node_modules/core-js/modules/_typed-array.js")('Uint8', 1, function (init) { + return function Uint8ClampedArray(data, byteOffset, length) { + return init(this, data, byteOffset, length); + }; +}, true); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.weak-map.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.weak-map.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var each = __webpack_require__(/*! ./_array-methods */ "./node_modules/core-js/modules/_array-methods.js")(0); + +var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); + +var meta = __webpack_require__(/*! ./_meta */ "./node_modules/core-js/modules/_meta.js"); + +var assign = __webpack_require__(/*! ./_object-assign */ "./node_modules/core-js/modules/_object-assign.js"); + +var weak = __webpack_require__(/*! ./_collection-weak */ "./node_modules/core-js/modules/_collection-weak.js"); + +var isObject = __webpack_require__(/*! ./_is-object */ "./node_modules/core-js/modules/_is-object.js"); + +var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); + +var NATIVE_WEAK_MAP = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); + +var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; +var WEAK_MAP = 'WeakMap'; +var getWeak = meta.getWeak; +var isExtensible = Object.isExtensible; +var uncaughtFrozenStore = weak.ufstore; +var InternalMap; + +var wrapper = function wrapper(get) { + return function WeakMap() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}; + +var methods = { + // 23.3.3.3 WeakMap.prototype.get(key) + get: function get(key) { + if (isObject(key)) { + var data = getWeak(key); + if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); + return data ? data[this._i] : undefined; + } + }, + // 23.3.3.5 WeakMap.prototype.set(key, value) + set: function set(key, value) { + return weak.def(validate(this, WEAK_MAP), key, value); + } +}; // 23.3 WeakMap Objects + +var $WeakMap = module.exports = __webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(WEAK_MAP, wrapper, methods, weak, true, true); // IE11 WeakMap frozen keys fix + + +if (NATIVE_WEAK_MAP && IS_IE11) { + InternalMap = weak.getConstructor(wrapper, WEAK_MAP); + assign(InternalMap.prototype, methods); + meta.NEED = true; + each(['delete', 'has', 'get', 'set'], function (key) { + var proto = $WeakMap.prototype; + var method = proto[key]; + redefine(proto, key, function (a, b) { + // store frozen objects on internal weakmap shim + if (isObject(a) && !isExtensible(a)) { + if (!this._f) this._f = new InternalMap(); + + var result = this._f[key](a, b); + + return key == 'set' ? this : result; // store all the rest on native weakmap + } + + return method.call(this, a, b); + }); + }); +} + +/***/ }), + +/***/ "./node_modules/core-js/modules/es6.weak-set.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/es6.weak-set.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var weak = __webpack_require__(/*! ./_collection-weak */ "./node_modules/core-js/modules/_collection-weak.js"); + +var validate = __webpack_require__(/*! ./_validate-collection */ "./node_modules/core-js/modules/_validate-collection.js"); + +var WEAK_SET = 'WeakSet'; // 23.4 WeakSet Objects + +__webpack_require__(/*! ./_collection */ "./node_modules/core-js/modules/_collection.js")(WEAK_SET, function (get) { + return function WeakSet() { + return get(this, arguments.length > 0 ? arguments[0] : undefined); + }; +}, { + // 23.4.3.1 WeakSet.prototype.add(value) + add: function add(value) { + return weak.def(validate(this, WEAK_SET), value, true); + } +}, weak, false, true); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.array.flat-map.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.array.flat-map.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var flattenIntoArray = __webpack_require__(/*! ./_flatten-into-array */ "./node_modules/core-js/modules/_flatten-into-array.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var arraySpeciesCreate = __webpack_require__(/*! ./_array-species-create */ "./node_modules/core-js/modules/_array-species-create.js"); + +$export($export.P, 'Array', { + flatMap: function flatMap(callbackfn + /* , thisArg */ + ) { + var O = toObject(this); + var sourceLen, A; + aFunction(callbackfn); + sourceLen = toLength(O.length); + A = arraySpeciesCreate(O, 0); + flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]); + return A; + } +}); + +__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('flatMap'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.array.flatten.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.array.flatten.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var flattenIntoArray = __webpack_require__(/*! ./_flatten-into-array */ "./node_modules/core-js/modules/_flatten-into-array.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var toInteger = __webpack_require__(/*! ./_to-integer */ "./node_modules/core-js/modules/_to-integer.js"); + +var arraySpeciesCreate = __webpack_require__(/*! ./_array-species-create */ "./node_modules/core-js/modules/_array-species-create.js"); + +$export($export.P, 'Array', { + flatten: function + /* depthArg = 1 */ + flatten() { + var depthArg = arguments[0]; + var O = toObject(this); + var sourceLen = toLength(O.length); + var A = arraySpeciesCreate(O, 0); + flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg)); + return A; + } +}); + +__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('flatten'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.array.includes.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.array.includes.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://github.com/tc39/Array.prototype.includes + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $includes = __webpack_require__(/*! ./_array-includes */ "./node_modules/core-js/modules/_array-includes.js")(true); + +$export($export.P, 'Array', { + includes: function includes(el + /* , fromIndex = 0 */ + ) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); + } +}); + +__webpack_require__(/*! ./_add-to-unscopables */ "./node_modules/core-js/modules/_add-to-unscopables.js")('includes'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.asap.js": +/*!**************************************************!*\ + !*** ./node_modules/core-js/modules/es7.asap.js ***! + \**************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var microtask = __webpack_require__(/*! ./_microtask */ "./node_modules/core-js/modules/_microtask.js")(); + +var process = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js").process; + +var isNode = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js")(process) == 'process'; +$export($export.G, { + asap: function asap(fn) { + var domain = isNode && process.domain; + microtask(domain ? domain.bind(fn) : fn); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.error.is-error.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.error.is-error.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/ljharb/proposal-is-error +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var cof = __webpack_require__(/*! ./_cof */ "./node_modules/core-js/modules/_cof.js"); + +$export($export.S, 'Error', { + isError: function isError(it) { + return cof(it) === 'Error'; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.global.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/es7.global.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-global +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.G, { + global: __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.map.from.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/es7.map.from.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from +__webpack_require__(/*! ./_set-collection-from */ "./node_modules/core-js/modules/_set-collection-from.js")('Map'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.map.of.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/es7.map.of.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of +__webpack_require__(/*! ./_set-collection-of */ "./node_modules/core-js/modules/_set-collection-of.js")('Map'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.map.to-json.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.map.to-json.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.P + $export.R, 'Map', { + toJSON: __webpack_require__(/*! ./_collection-to-json */ "./node_modules/core-js/modules/_collection-to-json.js")('Map') +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.clamp.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.clamp.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + clamp: function clamp(x, lower, upper) { + return Math.min(upper, Math.max(lower, x)); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.deg-per-rad.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.deg-per-rad.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + DEG_PER_RAD: Math.PI / 180 +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.degrees.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.degrees.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var RAD_PER_DEG = 180 / Math.PI; +$export($export.S, 'Math', { + degrees: function degrees(radians) { + return radians * RAD_PER_DEG; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.fscale.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.fscale.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var scale = __webpack_require__(/*! ./_math-scale */ "./node_modules/core-js/modules/_math-scale.js"); + +var fround = __webpack_require__(/*! ./_math-fround */ "./node_modules/core-js/modules/_math-fround.js"); + +$export($export.S, 'Math', { + fscale: function fscale(x, inLow, inHigh, outLow, outHigh) { + return fround(scale(x, inLow, inHigh, outLow, outHigh)); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.iaddh.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.iaddh.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + iaddh: function iaddh(x0, x1, y0, y1) { + var $x0 = x0 >>> 0; + var $x1 = x1 >>> 0; + var $y0 = y0 >>> 0; + return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.imulh.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.imulh.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + imulh: function imulh(u, v) { + var UINT16 = 0xffff; + var $u = +u; + var $v = +v; + var u0 = $u & UINT16; + var v0 = $v & UINT16; + var u1 = $u >> 16; + var v1 = $v >> 16; + var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); + return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.isubh.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.isubh.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + isubh: function isubh(x0, x1, y0, y1) { + var $x0 = x0 >>> 0; + var $x1 = x1 >>> 0; + var $y0 = y0 >>> 0; + return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.rad-per-deg.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.rad-per-deg.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + RAD_PER_DEG: 180 / Math.PI +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.radians.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.radians.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var DEG_PER_RAD = Math.PI / 180; +$export($export.S, 'Math', { + radians: function radians(degrees) { + return degrees * DEG_PER_RAD; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.scale.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.scale.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://rwaldron.github.io/proposal-math-extensions/ +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + scale: __webpack_require__(/*! ./_math-scale */ "./node_modules/core-js/modules/_math-scale.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.signbit.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.signbit.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// http://jfbastien.github.io/papers/Math.signbit.html +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + signbit: function signbit(x) { + // eslint-disable-next-line no-self-compare + return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.math.umulh.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.math.umulh.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://gist.github.com/BrendanEich/4294d5c212a6d2254703 +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'Math', { + umulh: function umulh(u, v) { + var UINT16 = 0xffff; + var $u = +u; + var $v = +v; + var u0 = $u & UINT16; + var v0 = $v & UINT16; + var u1 = $u >>> 16; + var v1 = $v >>> 16; + var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16); + return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.object.define-getter.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.object.define-getter.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var $defineProperty = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); // B.2.2.2 Object.prototype.__defineGetter__(P, getter) + + +__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && $export($export.P + __webpack_require__(/*! ./_object-forced-pam */ "./node_modules/core-js/modules/_object-forced-pam.js"), 'Object', { + __defineGetter__: function __defineGetter__(P, getter) { + $defineProperty.f(toObject(this), P, { + get: aFunction(getter), + enumerable: true, + configurable: true + }); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.object.define-setter.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.object.define-setter.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var $defineProperty = __webpack_require__(/*! ./_object-dp */ "./node_modules/core-js/modules/_object-dp.js"); // B.2.2.3 Object.prototype.__defineSetter__(P, setter) + + +__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && $export($export.P + __webpack_require__(/*! ./_object-forced-pam */ "./node_modules/core-js/modules/_object-forced-pam.js"), 'Object', { + __defineSetter__: function __defineSetter__(P, setter) { + $defineProperty.f(toObject(this), P, { + set: aFunction(setter), + enumerable: true, + configurable: true + }); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.object.entries.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.object.entries.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-object-values-entries +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $entries = __webpack_require__(/*! ./_object-to-array */ "./node_modules/core-js/modules/_object-to-array.js")(true); + +$export($export.S, 'Object', { + entries: function entries(it) { + return $entries(it); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js ***! + \*********************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-object-getownpropertydescriptors +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var ownKeys = __webpack_require__(/*! ./_own-keys */ "./node_modules/core-js/modules/_own-keys.js"); + +var toIObject = __webpack_require__(/*! ./_to-iobject */ "./node_modules/core-js/modules/_to-iobject.js"); + +var gOPD = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js"); + +var createProperty = __webpack_require__(/*! ./_create-property */ "./node_modules/core-js/modules/_create-property.js"); + +$export($export.S, 'Object', { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIObject(object); + var getDesc = gOPD.f; + var keys = ownKeys(O); + var result = {}; + var i = 0; + var key, desc; + + while (keys.length > i) { + desc = getDesc(O, key = keys[i++]); + if (desc !== undefined) createProperty(result, key, desc); + } + + return result; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.object.lookup-getter.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.object.lookup-getter.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); + +var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f; // B.2.2.4 Object.prototype.__lookupGetter__(P) + + +__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && $export($export.P + __webpack_require__(/*! ./_object-forced-pam */ "./node_modules/core-js/modules/_object-forced-pam.js"), 'Object', { + __lookupGetter__: function __lookupGetter__(P) { + var O = toObject(this); + var K = toPrimitive(P, true); + var D; + + do { + if (D = getOwnPropertyDescriptor(O, K)) return D.get; + } while (O = getPrototypeOf(O)); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.object.lookup-setter.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.object.lookup-setter.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var toObject = __webpack_require__(/*! ./_to-object */ "./node_modules/core-js/modules/_to-object.js"); + +var toPrimitive = __webpack_require__(/*! ./_to-primitive */ "./node_modules/core-js/modules/_to-primitive.js"); + +var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var getOwnPropertyDescriptor = __webpack_require__(/*! ./_object-gopd */ "./node_modules/core-js/modules/_object-gopd.js").f; // B.2.2.5 Object.prototype.__lookupSetter__(P) + + +__webpack_require__(/*! ./_descriptors */ "./node_modules/core-js/modules/_descriptors.js") && $export($export.P + __webpack_require__(/*! ./_object-forced-pam */ "./node_modules/core-js/modules/_object-forced-pam.js"), 'Object', { + __lookupSetter__: function __lookupSetter__(P) { + var O = toObject(this); + var K = toPrimitive(P, true); + var D; + + do { + if (D = getOwnPropertyDescriptor(O, K)) return D.set; + } while (O = getPrototypeOf(O)); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.object.values.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.object.values.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-object-values-entries +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $values = __webpack_require__(/*! ./_object-to-array */ "./node_modules/core-js/modules/_object-to-array.js")(false); + +$export($export.S, 'Object', { + values: function values(it) { + return $values(it); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.observable.js": +/*!********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.observable.js ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://github.com/zenparsing/es-observable + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); + +var microtask = __webpack_require__(/*! ./_microtask */ "./node_modules/core-js/modules/_microtask.js")(); + +var OBSERVABLE = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js")('observable'); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var anInstance = __webpack_require__(/*! ./_an-instance */ "./node_modules/core-js/modules/_an-instance.js"); + +var redefineAll = __webpack_require__(/*! ./_redefine-all */ "./node_modules/core-js/modules/_redefine-all.js"); + +var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); + +var forOf = __webpack_require__(/*! ./_for-of */ "./node_modules/core-js/modules/_for-of.js"); + +var RETURN = forOf.RETURN; + +var getMethod = function getMethod(fn) { + return fn == null ? undefined : aFunction(fn); +}; + +var cleanupSubscription = function cleanupSubscription(subscription) { + var cleanup = subscription._c; + + if (cleanup) { + subscription._c = undefined; + cleanup(); + } +}; + +var subscriptionClosed = function subscriptionClosed(subscription) { + return subscription._o === undefined; +}; + +var closeSubscription = function closeSubscription(subscription) { + if (!subscriptionClosed(subscription)) { + subscription._o = undefined; + cleanupSubscription(subscription); + } +}; + +var Subscription = function Subscription(observer, subscriber) { + anObject(observer); + this._c = undefined; + this._o = observer; + observer = new SubscriptionObserver(this); + + try { + var cleanup = subscriber(observer); + var subscription = cleanup; + + if (cleanup != null) { + if (typeof cleanup.unsubscribe === 'function') cleanup = function cleanup() { + subscription.unsubscribe(); + };else aFunction(cleanup); + this._c = cleanup; + } + } catch (e) { + observer.error(e); + return; + } + + if (subscriptionClosed(this)) cleanupSubscription(this); +}; + +Subscription.prototype = redefineAll({}, { + unsubscribe: function unsubscribe() { + closeSubscription(this); + } +}); + +var SubscriptionObserver = function SubscriptionObserver(subscription) { + this._s = subscription; +}; + +SubscriptionObserver.prototype = redefineAll({}, { + next: function next(value) { + var subscription = this._s; + + if (!subscriptionClosed(subscription)) { + var observer = subscription._o; + + try { + var m = getMethod(observer.next); + if (m) return m.call(observer, value); + } catch (e) { + try { + closeSubscription(subscription); + } finally { + throw e; + } + } + } + }, + error: function error(value) { + var subscription = this._s; + if (subscriptionClosed(subscription)) throw value; + var observer = subscription._o; + subscription._o = undefined; + + try { + var m = getMethod(observer.error); + if (!m) throw value; + value = m.call(observer, value); + } catch (e) { + try { + cleanupSubscription(subscription); + } finally { + throw e; + } + } + + cleanupSubscription(subscription); + return value; + }, + complete: function complete(value) { + var subscription = this._s; + + if (!subscriptionClosed(subscription)) { + var observer = subscription._o; + subscription._o = undefined; + + try { + var m = getMethod(observer.complete); + value = m ? m.call(observer, value) : undefined; + } catch (e) { + try { + cleanupSubscription(subscription); + } finally { + throw e; + } + } + + cleanupSubscription(subscription); + return value; + } + } +}); + +var $Observable = function Observable(subscriber) { + anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber); +}; + +redefineAll($Observable.prototype, { + subscribe: function subscribe(observer) { + return new Subscription(observer, this._f); + }, + forEach: function forEach(fn) { + var that = this; + return new (core.Promise || global.Promise)(function (resolve, reject) { + aFunction(fn); + var subscription = that.subscribe({ + next: function next(value) { + try { + return fn(value); + } catch (e) { + reject(e); + subscription.unsubscribe(); + } + }, + error: reject, + complete: resolve + }); + }); + } +}); +redefineAll($Observable, { + from: function from(x) { + var C = typeof this === 'function' ? this : $Observable; + var method = getMethod(anObject(x)[OBSERVABLE]); + + if (method) { + var observable = anObject(method.call(x)); + return observable.constructor === C ? observable : new C(function (observer) { + return observable.subscribe(observer); + }); + } + + return new C(function (observer) { + var done = false; + microtask(function () { + if (!done) { + try { + if (forOf(x, false, function (it) { + observer.next(it); + if (done) return RETURN; + }) === RETURN) return; + } catch (e) { + if (done) throw e; + observer.error(e); + return; + } + + observer.complete(); + } + }); + return function () { + done = true; + }; + }); + }, + of: function of() { + for (var i = 0, l = arguments.length, items = new Array(l); i < l;) { + items[i] = arguments[i++]; + } + + return new (typeof this === 'function' ? this : $Observable)(function (observer) { + var done = false; + microtask(function () { + if (!done) { + for (var j = 0; j < items.length; ++j) { + observer.next(items[j]); + if (done) return; + } + + observer.complete(); + } + }); + return function () { + done = true; + }; + }); + } +}); +hide($Observable.prototype, OBSERVABLE, function () { + return this; +}); +$export($export.G, { + Observable: $Observable +}); + +__webpack_require__(/*! ./_set-species */ "./node_modules/core-js/modules/_set-species.js")('Observable'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.promise.finally.js": +/*!*************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.promise.finally.js ***! + \*************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +// https://github.com/tc39/proposal-promise-finally + + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var core = __webpack_require__(/*! ./_core */ "./node_modules/core-js/modules/_core.js"); + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var speciesConstructor = __webpack_require__(/*! ./_species-constructor */ "./node_modules/core-js/modules/_species-constructor.js"); + +var promiseResolve = __webpack_require__(/*! ./_promise-resolve */ "./node_modules/core-js/modules/_promise-resolve.js"); + +$export($export.P + $export.R, 'Promise', { + 'finally': function _finally(onFinally) { + var C = speciesConstructor(this, core.Promise || global.Promise); + var isFunction = typeof onFinally == 'function'; + return this.then(isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { + return x; + }); + } : onFinally, isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { + throw e; + }); + } : onFinally); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.promise.try.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.promise.try.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://github.com/tc39/proposal-promise-try + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var newPromiseCapability = __webpack_require__(/*! ./_new-promise-capability */ "./node_modules/core-js/modules/_new-promise-capability.js"); + +var perform = __webpack_require__(/*! ./_perform */ "./node_modules/core-js/modules/_perform.js"); + +$export($export.S, 'Promise', { + 'try': function _try(callbackfn) { + var promiseCapability = newPromiseCapability.f(this); + var result = perform(callbackfn); + (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); + return promiseCapability.promise; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.reflect.define-metadata.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.reflect.define-metadata.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var toMetaKey = metadata.key; +var ordinaryDefineOwnMetadata = metadata.set; +metadata.exp({ + defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) { + ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey)); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.reflect.delete-metadata.js": +/*!*********************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.reflect.delete-metadata.js ***! + \*********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var toMetaKey = metadata.key; +var getOrCreateMetadataMap = metadata.map; +var store = metadata.store; +metadata.exp({ + deleteMetadata: function deleteMetadata(metadataKey, target + /* , targetKey */ + ) { + var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]); + var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false); + if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false; + if (metadataMap.size) return true; + var targetMetadata = store.get(target); + targetMetadata['delete'](targetKey); + return !!targetMetadata.size || store['delete'](target); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js": +/*!***********************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js ***! + \***********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var Set = __webpack_require__(/*! ./es6.set */ "./node_modules/core-js/modules/es6.set.js"); + +var from = __webpack_require__(/*! ./_array-from-iterable */ "./node_modules/core-js/modules/_array-from-iterable.js"); + +var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var ordinaryOwnMetadataKeys = metadata.keys; +var toMetaKey = metadata.key; + +var ordinaryMetadataKeys = function ordinaryMetadataKeys(O, P) { + var oKeys = ordinaryOwnMetadataKeys(O, P); + var parent = getPrototypeOf(O); + if (parent === null) return oKeys; + var pKeys = ordinaryMetadataKeys(parent, P); + return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys; +}; + +metadata.exp({ + getMetadataKeys: function getMetadataKeys(target + /* , targetKey */ + ) { + return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.reflect.get-metadata.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.reflect.get-metadata.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var ordinaryHasOwnMetadata = metadata.has; +var ordinaryGetOwnMetadata = metadata.get; +var toMetaKey = metadata.key; + +var ordinaryGetMetadata = function ordinaryGetMetadata(MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P); + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined; +}; + +metadata.exp({ + getMetadata: function getMetadata(metadataKey, target + /* , targetKey */ + ) { + return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js": +/*!***************************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js ***! + \***************************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var ordinaryOwnMetadataKeys = metadata.keys; +var toMetaKey = metadata.key; +metadata.exp({ + getOwnMetadataKeys: function getOwnMetadataKeys(target + /* , targetKey */ + ) { + return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1])); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.reflect.get-own-metadata.js": +/*!**********************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.reflect.get-own-metadata.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var ordinaryGetOwnMetadata = metadata.get; +var toMetaKey = metadata.key; +metadata.exp({ + getOwnMetadata: function getOwnMetadata(metadataKey, target + /* , targetKey */ + ) { + return ordinaryGetOwnMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.reflect.has-metadata.js": +/*!******************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.reflect.has-metadata.js ***! + \******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var getPrototypeOf = __webpack_require__(/*! ./_object-gpo */ "./node_modules/core-js/modules/_object-gpo.js"); + +var ordinaryHasOwnMetadata = metadata.has; +var toMetaKey = metadata.key; + +var ordinaryHasMetadata = function ordinaryHasMetadata(MetadataKey, O, P) { + var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P); + if (hasOwn) return true; + var parent = getPrototypeOf(O); + return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false; +}; + +metadata.exp({ + hasMetadata: function hasMetadata(metadataKey, target + /* , targetKey */ + ) { + return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.reflect.has-own-metadata.js": +/*!**********************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.reflect.has-own-metadata.js ***! + \**********************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var ordinaryHasOwnMetadata = metadata.has; +var toMetaKey = metadata.key; +metadata.exp({ + hasOwnMetadata: function hasOwnMetadata(metadataKey, target + /* , targetKey */ + ) { + return ordinaryHasOwnMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2])); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.reflect.metadata.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.reflect.metadata.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $metadata = __webpack_require__(/*! ./_metadata */ "./node_modules/core-js/modules/_metadata.js"); + +var anObject = __webpack_require__(/*! ./_an-object */ "./node_modules/core-js/modules/_an-object.js"); + +var aFunction = __webpack_require__(/*! ./_a-function */ "./node_modules/core-js/modules/_a-function.js"); + +var toMetaKey = $metadata.key; +var ordinaryDefineOwnMetadata = $metadata.set; +$metadata.exp({ + metadata: function metadata(metadataKey, metadataValue) { + return function decorator(target, targetKey) { + ordinaryDefineOwnMetadata(metadataKey, metadataValue, (targetKey !== undefined ? anObject : aFunction)(target), toMetaKey(targetKey)); + }; + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.set.from.js": +/*!******************************************************!*\ + !*** ./node_modules/core-js/modules/es7.set.from.js ***! + \******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from +__webpack_require__(/*! ./_set-collection-from */ "./node_modules/core-js/modules/_set-collection-from.js")('Set'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.set.of.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/es7.set.of.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of +__webpack_require__(/*! ./_set-collection-of */ "./node_modules/core-js/modules/_set-collection-of.js")('Set'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.set.to-json.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.set.to-json.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/DavidBruant/Map-Set.prototype.toJSON +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.P + $export.R, 'Set', { + toJSON: __webpack_require__(/*! ./_collection-to-json */ "./node_modules/core-js/modules/_collection-to-json.js")('Set') +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.string.at.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/es7.string.at.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://github.com/mathiasbynens/String.prototype.at + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $at = __webpack_require__(/*! ./_string-at */ "./node_modules/core-js/modules/_string-at.js")(true); + +var $fails = __webpack_require__(/*! ./_fails */ "./node_modules/core-js/modules/_fails.js"); + +var FORCED = $fails(function () { + return '𠮷'.at(0) !== '𠮷'; +}); +$export($export.P + $export.F * FORCED, 'String', { + at: function at(pos) { + return $at(this, pos); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.string.match-all.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.string.match-all.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://tc39.github.io/String.prototype.matchAll/ + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var defined = __webpack_require__(/*! ./_defined */ "./node_modules/core-js/modules/_defined.js"); + +var toLength = __webpack_require__(/*! ./_to-length */ "./node_modules/core-js/modules/_to-length.js"); + +var isRegExp = __webpack_require__(/*! ./_is-regexp */ "./node_modules/core-js/modules/_is-regexp.js"); + +var getFlags = __webpack_require__(/*! ./_flags */ "./node_modules/core-js/modules/_flags.js"); + +var RegExpProto = RegExp.prototype; + +var $RegExpStringIterator = function $RegExpStringIterator(regexp, string) { + this._r = regexp; + this._s = string; +}; + +__webpack_require__(/*! ./_iter-create */ "./node_modules/core-js/modules/_iter-create.js")($RegExpStringIterator, 'RegExp String', function next() { + var match = this._r.exec(this._s); + + return { + value: match, + done: match === null + }; +}); + +$export($export.P, 'String', { + matchAll: function matchAll(regexp) { + defined(this); + if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!'); + var S = String(this); + var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp); + var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags); + rx.lastIndex = toLength(regexp.lastIndex); + return new $RegExpStringIterator(rx, S); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.string.pad-end.js": +/*!************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.string.pad-end.js ***! + \************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://github.com/tc39/proposal-string-pad-start-end + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $pad = __webpack_require__(/*! ./_string-pad */ "./node_modules/core-js/modules/_string-pad.js"); + +var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js"); // https://github.com/zloirock/core-js/issues/280 + + +var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); +$export($export.P + $export.F * WEBKIT_BUG, 'String', { + padEnd: function padEnd(maxLength + /* , fillString = ' ' */ + ) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.string.pad-start.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.string.pad-start.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://github.com/tc39/proposal-string-pad-start-end + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $pad = __webpack_require__(/*! ./_string-pad */ "./node_modules/core-js/modules/_string-pad.js"); + +var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js"); // https://github.com/zloirock/core-js/issues/280 + + +var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); +$export($export.P + $export.F * WEBKIT_BUG, 'String', { + padStart: function padStart(maxLength + /* , fillString = ' ' */ + ) { + return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); + } +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.string.trim-left.js": +/*!**************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.string.trim-left.js ***! + \**************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://github.com/sebmarkbage/ecmascript-string-left-right-trim + +__webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js")('trimLeft', function ($trim) { + return function trimLeft() { + return $trim(this, 1); + }; +}, 'trimStart'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.string.trim-right.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.string.trim-right.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + // https://github.com/sebmarkbage/ecmascript-string-left-right-trim + +__webpack_require__(/*! ./_string-trim */ "./node_modules/core-js/modules/_string-trim.js")('trimRight', function ($trim) { + return function trimRight() { + return $trim(this, 2); + }; +}, 'trimEnd'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.symbol.async-iterator.js": +/*!*******************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.symbol.async-iterator.js ***! + \*******************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_wks-define */ "./node_modules/core-js/modules/_wks-define.js")('asyncIterator'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.symbol.observable.js": +/*!***************************************************************!*\ + !*** ./node_modules/core-js/modules/es7.symbol.observable.js ***! + \***************************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./_wks-define */ "./node_modules/core-js/modules/_wks-define.js")('observable'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.system.global.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.system.global.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://github.com/tc39/proposal-global +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +$export($export.S, 'System', { + global: __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js") +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.weak-map.from.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.weak-map.from.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from +__webpack_require__(/*! ./_set-collection-from */ "./node_modules/core-js/modules/_set-collection-from.js")('WeakMap'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.weak-map.of.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.weak-map.of.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of +__webpack_require__(/*! ./_set-collection-of */ "./node_modules/core-js/modules/_set-collection-of.js")('WeakMap'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.weak-set.from.js": +/*!***********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.weak-set.from.js ***! + \***********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from +__webpack_require__(/*! ./_set-collection-from */ "./node_modules/core-js/modules/_set-collection-from.js")('WeakSet'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/es7.weak-set.of.js": +/*!*********************************************************!*\ + !*** ./node_modules/core-js/modules/es7.weak-set.of.js ***! + \*********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of +__webpack_require__(/*! ./_set-collection-of */ "./node_modules/core-js/modules/_set-collection-of.js")('WeakSet'); + +/***/ }), + +/***/ "./node_modules/core-js/modules/web.dom.iterable.js": +/*!**********************************************************!*\ + !*** ./node_modules/core-js/modules/web.dom.iterable.js ***! + \**********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $iterators = __webpack_require__(/*! ./es6.array.iterator */ "./node_modules/core-js/modules/es6.array.iterator.js"); + +var getKeys = __webpack_require__(/*! ./_object-keys */ "./node_modules/core-js/modules/_object-keys.js"); + +var redefine = __webpack_require__(/*! ./_redefine */ "./node_modules/core-js/modules/_redefine.js"); + +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var hide = __webpack_require__(/*! ./_hide */ "./node_modules/core-js/modules/_hide.js"); + +var Iterators = __webpack_require__(/*! ./_iterators */ "./node_modules/core-js/modules/_iterators.js"); + +var wks = __webpack_require__(/*! ./_wks */ "./node_modules/core-js/modules/_wks.js"); + +var ITERATOR = wks('iterator'); +var TO_STRING_TAG = wks('toStringTag'); +var ArrayValues = Iterators.Array; +var DOMIterables = { + CSSRuleList: true, + // TODO: Not spec compliant, should be false. + CSSStyleDeclaration: false, + CSSValueList: false, + ClientRectList: false, + DOMRectList: false, + DOMStringList: false, + DOMTokenList: true, + DataTransferItemList: false, + FileList: false, + HTMLAllCollection: false, + HTMLCollection: false, + HTMLFormElement: false, + HTMLSelectElement: false, + MediaList: true, + // TODO: Not spec compliant, should be false. + MimeTypeArray: false, + NamedNodeMap: false, + NodeList: true, + PaintRequestList: false, + Plugin: false, + PluginArray: false, + SVGLengthList: false, + SVGNumberList: false, + SVGPathSegList: false, + SVGPointList: false, + SVGStringList: false, + SVGTransformList: false, + SourceBufferList: false, + StyleSheetList: true, + // TODO: Not spec compliant, should be false. + TextTrackCueList: false, + TextTrackList: false, + TouchList: false +}; + +for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { + var NAME = collections[i]; + var explicit = DOMIterables[NAME]; + var Collection = global[NAME]; + var proto = Collection && Collection.prototype; + var key; + + if (proto) { + if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); + if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); + Iterators[NAME] = ArrayValues; + if (explicit) for (key in $iterators) { + if (!proto[key]) redefine(proto, key, $iterators[key], true); + } + } +} + +/***/ }), + +/***/ "./node_modules/core-js/modules/web.immediate.js": +/*!*******************************************************!*\ + !*** ./node_modules/core-js/modules/web.immediate.js ***! + \*******************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var $task = __webpack_require__(/*! ./_task */ "./node_modules/core-js/modules/_task.js"); + +$export($export.G + $export.B, { + setImmediate: $task.set, + clearImmediate: $task.clear +}); + +/***/ }), + +/***/ "./node_modules/core-js/modules/web.timers.js": +/*!****************************************************!*\ + !*** ./node_modules/core-js/modules/web.timers.js ***! + \****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +// ie9- setTimeout & setInterval additional parameters fix +var global = __webpack_require__(/*! ./_global */ "./node_modules/core-js/modules/_global.js"); + +var $export = __webpack_require__(/*! ./_export */ "./node_modules/core-js/modules/_export.js"); + +var userAgent = __webpack_require__(/*! ./_user-agent */ "./node_modules/core-js/modules/_user-agent.js"); + +var slice = [].slice; +var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check + +var wrap = function wrap(set) { + return function (fn, time + /* , ...args */ + ) { + var boundArgs = arguments.length > 2; + var args = boundArgs ? slice.call(arguments, 2) : false; + return set(boundArgs ? function () { + // eslint-disable-next-line no-new-func + (typeof fn == 'function' ? fn : Function(fn)).apply(this, args); + } : fn, time); + }; +}; + +$export($export.G + $export.B + $export.F * MSIE, { + setTimeout: wrap(global.setTimeout), + setInterval: wrap(global.setInterval) +}); + +/***/ }), + +/***/ "./node_modules/core-js/shim.js": +/*!**************************************!*\ + !*** ./node_modules/core-js/shim.js ***! + \**************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! ./modules/es6.symbol */ "./node_modules/core-js/modules/es6.symbol.js"); + +__webpack_require__(/*! ./modules/es6.object.create */ "./node_modules/core-js/modules/es6.object.create.js"); + +__webpack_require__(/*! ./modules/es6.object.define-property */ "./node_modules/core-js/modules/es6.object.define-property.js"); + +__webpack_require__(/*! ./modules/es6.object.define-properties */ "./node_modules/core-js/modules/es6.object.define-properties.js"); + +__webpack_require__(/*! ./modules/es6.object.get-own-property-descriptor */ "./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js"); + +__webpack_require__(/*! ./modules/es6.object.get-prototype-of */ "./node_modules/core-js/modules/es6.object.get-prototype-of.js"); + +__webpack_require__(/*! ./modules/es6.object.keys */ "./node_modules/core-js/modules/es6.object.keys.js"); + +__webpack_require__(/*! ./modules/es6.object.get-own-property-names */ "./node_modules/core-js/modules/es6.object.get-own-property-names.js"); + +__webpack_require__(/*! ./modules/es6.object.freeze */ "./node_modules/core-js/modules/es6.object.freeze.js"); + +__webpack_require__(/*! ./modules/es6.object.seal */ "./node_modules/core-js/modules/es6.object.seal.js"); + +__webpack_require__(/*! ./modules/es6.object.prevent-extensions */ "./node_modules/core-js/modules/es6.object.prevent-extensions.js"); + +__webpack_require__(/*! ./modules/es6.object.is-frozen */ "./node_modules/core-js/modules/es6.object.is-frozen.js"); + +__webpack_require__(/*! ./modules/es6.object.is-sealed */ "./node_modules/core-js/modules/es6.object.is-sealed.js"); + +__webpack_require__(/*! ./modules/es6.object.is-extensible */ "./node_modules/core-js/modules/es6.object.is-extensible.js"); + +__webpack_require__(/*! ./modules/es6.object.assign */ "./node_modules/core-js/modules/es6.object.assign.js"); + +__webpack_require__(/*! ./modules/es6.object.is */ "./node_modules/core-js/modules/es6.object.is.js"); + +__webpack_require__(/*! ./modules/es6.object.set-prototype-of */ "./node_modules/core-js/modules/es6.object.set-prototype-of.js"); + +__webpack_require__(/*! ./modules/es6.object.to-string */ "./node_modules/core-js/modules/es6.object.to-string.js"); + +__webpack_require__(/*! ./modules/es6.function.bind */ "./node_modules/core-js/modules/es6.function.bind.js"); + +__webpack_require__(/*! ./modules/es6.function.name */ "./node_modules/core-js/modules/es6.function.name.js"); + +__webpack_require__(/*! ./modules/es6.function.has-instance */ "./node_modules/core-js/modules/es6.function.has-instance.js"); + +__webpack_require__(/*! ./modules/es6.parse-int */ "./node_modules/core-js/modules/es6.parse-int.js"); + +__webpack_require__(/*! ./modules/es6.parse-float */ "./node_modules/core-js/modules/es6.parse-float.js"); + +__webpack_require__(/*! ./modules/es6.number.constructor */ "./node_modules/core-js/modules/es6.number.constructor.js"); + +__webpack_require__(/*! ./modules/es6.number.to-fixed */ "./node_modules/core-js/modules/es6.number.to-fixed.js"); + +__webpack_require__(/*! ./modules/es6.number.to-precision */ "./node_modules/core-js/modules/es6.number.to-precision.js"); + +__webpack_require__(/*! ./modules/es6.number.epsilon */ "./node_modules/core-js/modules/es6.number.epsilon.js"); + +__webpack_require__(/*! ./modules/es6.number.is-finite */ "./node_modules/core-js/modules/es6.number.is-finite.js"); + +__webpack_require__(/*! ./modules/es6.number.is-integer */ "./node_modules/core-js/modules/es6.number.is-integer.js"); + +__webpack_require__(/*! ./modules/es6.number.is-nan */ "./node_modules/core-js/modules/es6.number.is-nan.js"); + +__webpack_require__(/*! ./modules/es6.number.is-safe-integer */ "./node_modules/core-js/modules/es6.number.is-safe-integer.js"); + +__webpack_require__(/*! ./modules/es6.number.max-safe-integer */ "./node_modules/core-js/modules/es6.number.max-safe-integer.js"); + +__webpack_require__(/*! ./modules/es6.number.min-safe-integer */ "./node_modules/core-js/modules/es6.number.min-safe-integer.js"); + +__webpack_require__(/*! ./modules/es6.number.parse-float */ "./node_modules/core-js/modules/es6.number.parse-float.js"); + +__webpack_require__(/*! ./modules/es6.number.parse-int */ "./node_modules/core-js/modules/es6.number.parse-int.js"); + +__webpack_require__(/*! ./modules/es6.math.acosh */ "./node_modules/core-js/modules/es6.math.acosh.js"); + +__webpack_require__(/*! ./modules/es6.math.asinh */ "./node_modules/core-js/modules/es6.math.asinh.js"); + +__webpack_require__(/*! ./modules/es6.math.atanh */ "./node_modules/core-js/modules/es6.math.atanh.js"); + +__webpack_require__(/*! ./modules/es6.math.cbrt */ "./node_modules/core-js/modules/es6.math.cbrt.js"); + +__webpack_require__(/*! ./modules/es6.math.clz32 */ "./node_modules/core-js/modules/es6.math.clz32.js"); + +__webpack_require__(/*! ./modules/es6.math.cosh */ "./node_modules/core-js/modules/es6.math.cosh.js"); + +__webpack_require__(/*! ./modules/es6.math.expm1 */ "./node_modules/core-js/modules/es6.math.expm1.js"); + +__webpack_require__(/*! ./modules/es6.math.fround */ "./node_modules/core-js/modules/es6.math.fround.js"); + +__webpack_require__(/*! ./modules/es6.math.hypot */ "./node_modules/core-js/modules/es6.math.hypot.js"); + +__webpack_require__(/*! ./modules/es6.math.imul */ "./node_modules/core-js/modules/es6.math.imul.js"); + +__webpack_require__(/*! ./modules/es6.math.log10 */ "./node_modules/core-js/modules/es6.math.log10.js"); + +__webpack_require__(/*! ./modules/es6.math.log1p */ "./node_modules/core-js/modules/es6.math.log1p.js"); + +__webpack_require__(/*! ./modules/es6.math.log2 */ "./node_modules/core-js/modules/es6.math.log2.js"); + +__webpack_require__(/*! ./modules/es6.math.sign */ "./node_modules/core-js/modules/es6.math.sign.js"); + +__webpack_require__(/*! ./modules/es6.math.sinh */ "./node_modules/core-js/modules/es6.math.sinh.js"); + +__webpack_require__(/*! ./modules/es6.math.tanh */ "./node_modules/core-js/modules/es6.math.tanh.js"); + +__webpack_require__(/*! ./modules/es6.math.trunc */ "./node_modules/core-js/modules/es6.math.trunc.js"); + +__webpack_require__(/*! ./modules/es6.string.from-code-point */ "./node_modules/core-js/modules/es6.string.from-code-point.js"); + +__webpack_require__(/*! ./modules/es6.string.raw */ "./node_modules/core-js/modules/es6.string.raw.js"); + +__webpack_require__(/*! ./modules/es6.string.trim */ "./node_modules/core-js/modules/es6.string.trim.js"); + +__webpack_require__(/*! ./modules/es6.string.iterator */ "./node_modules/core-js/modules/es6.string.iterator.js"); + +__webpack_require__(/*! ./modules/es6.string.code-point-at */ "./node_modules/core-js/modules/es6.string.code-point-at.js"); + +__webpack_require__(/*! ./modules/es6.string.ends-with */ "./node_modules/core-js/modules/es6.string.ends-with.js"); + +__webpack_require__(/*! ./modules/es6.string.includes */ "./node_modules/core-js/modules/es6.string.includes.js"); + +__webpack_require__(/*! ./modules/es6.string.repeat */ "./node_modules/core-js/modules/es6.string.repeat.js"); + +__webpack_require__(/*! ./modules/es6.string.starts-with */ "./node_modules/core-js/modules/es6.string.starts-with.js"); + +__webpack_require__(/*! ./modules/es6.string.anchor */ "./node_modules/core-js/modules/es6.string.anchor.js"); + +__webpack_require__(/*! ./modules/es6.string.big */ "./node_modules/core-js/modules/es6.string.big.js"); + +__webpack_require__(/*! ./modules/es6.string.blink */ "./node_modules/core-js/modules/es6.string.blink.js"); + +__webpack_require__(/*! ./modules/es6.string.bold */ "./node_modules/core-js/modules/es6.string.bold.js"); + +__webpack_require__(/*! ./modules/es6.string.fixed */ "./node_modules/core-js/modules/es6.string.fixed.js"); + +__webpack_require__(/*! ./modules/es6.string.fontcolor */ "./node_modules/core-js/modules/es6.string.fontcolor.js"); + +__webpack_require__(/*! ./modules/es6.string.fontsize */ "./node_modules/core-js/modules/es6.string.fontsize.js"); + +__webpack_require__(/*! ./modules/es6.string.italics */ "./node_modules/core-js/modules/es6.string.italics.js"); + +__webpack_require__(/*! ./modules/es6.string.link */ "./node_modules/core-js/modules/es6.string.link.js"); + +__webpack_require__(/*! ./modules/es6.string.small */ "./node_modules/core-js/modules/es6.string.small.js"); + +__webpack_require__(/*! ./modules/es6.string.strike */ "./node_modules/core-js/modules/es6.string.strike.js"); + +__webpack_require__(/*! ./modules/es6.string.sub */ "./node_modules/core-js/modules/es6.string.sub.js"); + +__webpack_require__(/*! ./modules/es6.string.sup */ "./node_modules/core-js/modules/es6.string.sup.js"); + +__webpack_require__(/*! ./modules/es6.date.now */ "./node_modules/core-js/modules/es6.date.now.js"); + +__webpack_require__(/*! ./modules/es6.date.to-json */ "./node_modules/core-js/modules/es6.date.to-json.js"); + +__webpack_require__(/*! ./modules/es6.date.to-iso-string */ "./node_modules/core-js/modules/es6.date.to-iso-string.js"); + +__webpack_require__(/*! ./modules/es6.date.to-string */ "./node_modules/core-js/modules/es6.date.to-string.js"); + +__webpack_require__(/*! ./modules/es6.date.to-primitive */ "./node_modules/core-js/modules/es6.date.to-primitive.js"); + +__webpack_require__(/*! ./modules/es6.array.is-array */ "./node_modules/core-js/modules/es6.array.is-array.js"); + +__webpack_require__(/*! ./modules/es6.array.from */ "./node_modules/core-js/modules/es6.array.from.js"); + +__webpack_require__(/*! ./modules/es6.array.of */ "./node_modules/core-js/modules/es6.array.of.js"); + +__webpack_require__(/*! ./modules/es6.array.join */ "./node_modules/core-js/modules/es6.array.join.js"); + +__webpack_require__(/*! ./modules/es6.array.slice */ "./node_modules/core-js/modules/es6.array.slice.js"); + +__webpack_require__(/*! ./modules/es6.array.sort */ "./node_modules/core-js/modules/es6.array.sort.js"); + +__webpack_require__(/*! ./modules/es6.array.for-each */ "./node_modules/core-js/modules/es6.array.for-each.js"); + +__webpack_require__(/*! ./modules/es6.array.map */ "./node_modules/core-js/modules/es6.array.map.js"); + +__webpack_require__(/*! ./modules/es6.array.filter */ "./node_modules/core-js/modules/es6.array.filter.js"); + +__webpack_require__(/*! ./modules/es6.array.some */ "./node_modules/core-js/modules/es6.array.some.js"); + +__webpack_require__(/*! ./modules/es6.array.every */ "./node_modules/core-js/modules/es6.array.every.js"); + +__webpack_require__(/*! ./modules/es6.array.reduce */ "./node_modules/core-js/modules/es6.array.reduce.js"); + +__webpack_require__(/*! ./modules/es6.array.reduce-right */ "./node_modules/core-js/modules/es6.array.reduce-right.js"); + +__webpack_require__(/*! ./modules/es6.array.index-of */ "./node_modules/core-js/modules/es6.array.index-of.js"); + +__webpack_require__(/*! ./modules/es6.array.last-index-of */ "./node_modules/core-js/modules/es6.array.last-index-of.js"); + +__webpack_require__(/*! ./modules/es6.array.copy-within */ "./node_modules/core-js/modules/es6.array.copy-within.js"); + +__webpack_require__(/*! ./modules/es6.array.fill */ "./node_modules/core-js/modules/es6.array.fill.js"); + +__webpack_require__(/*! ./modules/es6.array.find */ "./node_modules/core-js/modules/es6.array.find.js"); + +__webpack_require__(/*! ./modules/es6.array.find-index */ "./node_modules/core-js/modules/es6.array.find-index.js"); + +__webpack_require__(/*! ./modules/es6.array.species */ "./node_modules/core-js/modules/es6.array.species.js"); + +__webpack_require__(/*! ./modules/es6.array.iterator */ "./node_modules/core-js/modules/es6.array.iterator.js"); + +__webpack_require__(/*! ./modules/es6.regexp.constructor */ "./node_modules/core-js/modules/es6.regexp.constructor.js"); + +__webpack_require__(/*! ./modules/es6.regexp.exec */ "./node_modules/core-js/modules/es6.regexp.exec.js"); + +__webpack_require__(/*! ./modules/es6.regexp.to-string */ "./node_modules/core-js/modules/es6.regexp.to-string.js"); + +__webpack_require__(/*! ./modules/es6.regexp.flags */ "./node_modules/core-js/modules/es6.regexp.flags.js"); + +__webpack_require__(/*! ./modules/es6.regexp.match */ "./node_modules/core-js/modules/es6.regexp.match.js"); + +__webpack_require__(/*! ./modules/es6.regexp.replace */ "./node_modules/core-js/modules/es6.regexp.replace.js"); + +__webpack_require__(/*! ./modules/es6.regexp.search */ "./node_modules/core-js/modules/es6.regexp.search.js"); + +__webpack_require__(/*! ./modules/es6.regexp.split */ "./node_modules/core-js/modules/es6.regexp.split.js"); + +__webpack_require__(/*! ./modules/es6.promise */ "./node_modules/core-js/modules/es6.promise.js"); + +__webpack_require__(/*! ./modules/es6.map */ "./node_modules/core-js/modules/es6.map.js"); + +__webpack_require__(/*! ./modules/es6.set */ "./node_modules/core-js/modules/es6.set.js"); + +__webpack_require__(/*! ./modules/es6.weak-map */ "./node_modules/core-js/modules/es6.weak-map.js"); + +__webpack_require__(/*! ./modules/es6.weak-set */ "./node_modules/core-js/modules/es6.weak-set.js"); + +__webpack_require__(/*! ./modules/es6.typed.array-buffer */ "./node_modules/core-js/modules/es6.typed.array-buffer.js"); + +__webpack_require__(/*! ./modules/es6.typed.data-view */ "./node_modules/core-js/modules/es6.typed.data-view.js"); + +__webpack_require__(/*! ./modules/es6.typed.int8-array */ "./node_modules/core-js/modules/es6.typed.int8-array.js"); + +__webpack_require__(/*! ./modules/es6.typed.uint8-array */ "./node_modules/core-js/modules/es6.typed.uint8-array.js"); + +__webpack_require__(/*! ./modules/es6.typed.uint8-clamped-array */ "./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js"); + +__webpack_require__(/*! ./modules/es6.typed.int16-array */ "./node_modules/core-js/modules/es6.typed.int16-array.js"); + +__webpack_require__(/*! ./modules/es6.typed.uint16-array */ "./node_modules/core-js/modules/es6.typed.uint16-array.js"); + +__webpack_require__(/*! ./modules/es6.typed.int32-array */ "./node_modules/core-js/modules/es6.typed.int32-array.js"); + +__webpack_require__(/*! ./modules/es6.typed.uint32-array */ "./node_modules/core-js/modules/es6.typed.uint32-array.js"); + +__webpack_require__(/*! ./modules/es6.typed.float32-array */ "./node_modules/core-js/modules/es6.typed.float32-array.js"); + +__webpack_require__(/*! ./modules/es6.typed.float64-array */ "./node_modules/core-js/modules/es6.typed.float64-array.js"); + +__webpack_require__(/*! ./modules/es6.reflect.apply */ "./node_modules/core-js/modules/es6.reflect.apply.js"); + +__webpack_require__(/*! ./modules/es6.reflect.construct */ "./node_modules/core-js/modules/es6.reflect.construct.js"); + +__webpack_require__(/*! ./modules/es6.reflect.define-property */ "./node_modules/core-js/modules/es6.reflect.define-property.js"); + +__webpack_require__(/*! ./modules/es6.reflect.delete-property */ "./node_modules/core-js/modules/es6.reflect.delete-property.js"); + +__webpack_require__(/*! ./modules/es6.reflect.enumerate */ "./node_modules/core-js/modules/es6.reflect.enumerate.js"); + +__webpack_require__(/*! ./modules/es6.reflect.get */ "./node_modules/core-js/modules/es6.reflect.get.js"); + +__webpack_require__(/*! ./modules/es6.reflect.get-own-property-descriptor */ "./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js"); + +__webpack_require__(/*! ./modules/es6.reflect.get-prototype-of */ "./node_modules/core-js/modules/es6.reflect.get-prototype-of.js"); + +__webpack_require__(/*! ./modules/es6.reflect.has */ "./node_modules/core-js/modules/es6.reflect.has.js"); + +__webpack_require__(/*! ./modules/es6.reflect.is-extensible */ "./node_modules/core-js/modules/es6.reflect.is-extensible.js"); + +__webpack_require__(/*! ./modules/es6.reflect.own-keys */ "./node_modules/core-js/modules/es6.reflect.own-keys.js"); + +__webpack_require__(/*! ./modules/es6.reflect.prevent-extensions */ "./node_modules/core-js/modules/es6.reflect.prevent-extensions.js"); + +__webpack_require__(/*! ./modules/es6.reflect.set */ "./node_modules/core-js/modules/es6.reflect.set.js"); + +__webpack_require__(/*! ./modules/es6.reflect.set-prototype-of */ "./node_modules/core-js/modules/es6.reflect.set-prototype-of.js"); + +__webpack_require__(/*! ./modules/es7.array.includes */ "./node_modules/core-js/modules/es7.array.includes.js"); + +__webpack_require__(/*! ./modules/es7.array.flat-map */ "./node_modules/core-js/modules/es7.array.flat-map.js"); + +__webpack_require__(/*! ./modules/es7.array.flatten */ "./node_modules/core-js/modules/es7.array.flatten.js"); + +__webpack_require__(/*! ./modules/es7.string.at */ "./node_modules/core-js/modules/es7.string.at.js"); + +__webpack_require__(/*! ./modules/es7.string.pad-start */ "./node_modules/core-js/modules/es7.string.pad-start.js"); + +__webpack_require__(/*! ./modules/es7.string.pad-end */ "./node_modules/core-js/modules/es7.string.pad-end.js"); + +__webpack_require__(/*! ./modules/es7.string.trim-left */ "./node_modules/core-js/modules/es7.string.trim-left.js"); + +__webpack_require__(/*! ./modules/es7.string.trim-right */ "./node_modules/core-js/modules/es7.string.trim-right.js"); + +__webpack_require__(/*! ./modules/es7.string.match-all */ "./node_modules/core-js/modules/es7.string.match-all.js"); + +__webpack_require__(/*! ./modules/es7.symbol.async-iterator */ "./node_modules/core-js/modules/es7.symbol.async-iterator.js"); + +__webpack_require__(/*! ./modules/es7.symbol.observable */ "./node_modules/core-js/modules/es7.symbol.observable.js"); + +__webpack_require__(/*! ./modules/es7.object.get-own-property-descriptors */ "./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js"); + +__webpack_require__(/*! ./modules/es7.object.values */ "./node_modules/core-js/modules/es7.object.values.js"); + +__webpack_require__(/*! ./modules/es7.object.entries */ "./node_modules/core-js/modules/es7.object.entries.js"); + +__webpack_require__(/*! ./modules/es7.object.define-getter */ "./node_modules/core-js/modules/es7.object.define-getter.js"); + +__webpack_require__(/*! ./modules/es7.object.define-setter */ "./node_modules/core-js/modules/es7.object.define-setter.js"); + +__webpack_require__(/*! ./modules/es7.object.lookup-getter */ "./node_modules/core-js/modules/es7.object.lookup-getter.js"); + +__webpack_require__(/*! ./modules/es7.object.lookup-setter */ "./node_modules/core-js/modules/es7.object.lookup-setter.js"); + +__webpack_require__(/*! ./modules/es7.map.to-json */ "./node_modules/core-js/modules/es7.map.to-json.js"); + +__webpack_require__(/*! ./modules/es7.set.to-json */ "./node_modules/core-js/modules/es7.set.to-json.js"); + +__webpack_require__(/*! ./modules/es7.map.of */ "./node_modules/core-js/modules/es7.map.of.js"); + +__webpack_require__(/*! ./modules/es7.set.of */ "./node_modules/core-js/modules/es7.set.of.js"); + +__webpack_require__(/*! ./modules/es7.weak-map.of */ "./node_modules/core-js/modules/es7.weak-map.of.js"); + +__webpack_require__(/*! ./modules/es7.weak-set.of */ "./node_modules/core-js/modules/es7.weak-set.of.js"); + +__webpack_require__(/*! ./modules/es7.map.from */ "./node_modules/core-js/modules/es7.map.from.js"); + +__webpack_require__(/*! ./modules/es7.set.from */ "./node_modules/core-js/modules/es7.set.from.js"); + +__webpack_require__(/*! ./modules/es7.weak-map.from */ "./node_modules/core-js/modules/es7.weak-map.from.js"); + +__webpack_require__(/*! ./modules/es7.weak-set.from */ "./node_modules/core-js/modules/es7.weak-set.from.js"); + +__webpack_require__(/*! ./modules/es7.global */ "./node_modules/core-js/modules/es7.global.js"); + +__webpack_require__(/*! ./modules/es7.system.global */ "./node_modules/core-js/modules/es7.system.global.js"); + +__webpack_require__(/*! ./modules/es7.error.is-error */ "./node_modules/core-js/modules/es7.error.is-error.js"); + +__webpack_require__(/*! ./modules/es7.math.clamp */ "./node_modules/core-js/modules/es7.math.clamp.js"); + +__webpack_require__(/*! ./modules/es7.math.deg-per-rad */ "./node_modules/core-js/modules/es7.math.deg-per-rad.js"); + +__webpack_require__(/*! ./modules/es7.math.degrees */ "./node_modules/core-js/modules/es7.math.degrees.js"); + +__webpack_require__(/*! ./modules/es7.math.fscale */ "./node_modules/core-js/modules/es7.math.fscale.js"); + +__webpack_require__(/*! ./modules/es7.math.iaddh */ "./node_modules/core-js/modules/es7.math.iaddh.js"); + +__webpack_require__(/*! ./modules/es7.math.isubh */ "./node_modules/core-js/modules/es7.math.isubh.js"); + +__webpack_require__(/*! ./modules/es7.math.imulh */ "./node_modules/core-js/modules/es7.math.imulh.js"); + +__webpack_require__(/*! ./modules/es7.math.rad-per-deg */ "./node_modules/core-js/modules/es7.math.rad-per-deg.js"); + +__webpack_require__(/*! ./modules/es7.math.radians */ "./node_modules/core-js/modules/es7.math.radians.js"); + +__webpack_require__(/*! ./modules/es7.math.scale */ "./node_modules/core-js/modules/es7.math.scale.js"); + +__webpack_require__(/*! ./modules/es7.math.umulh */ "./node_modules/core-js/modules/es7.math.umulh.js"); + +__webpack_require__(/*! ./modules/es7.math.signbit */ "./node_modules/core-js/modules/es7.math.signbit.js"); + +__webpack_require__(/*! ./modules/es7.promise.finally */ "./node_modules/core-js/modules/es7.promise.finally.js"); + +__webpack_require__(/*! ./modules/es7.promise.try */ "./node_modules/core-js/modules/es7.promise.try.js"); + +__webpack_require__(/*! ./modules/es7.reflect.define-metadata */ "./node_modules/core-js/modules/es7.reflect.define-metadata.js"); + +__webpack_require__(/*! ./modules/es7.reflect.delete-metadata */ "./node_modules/core-js/modules/es7.reflect.delete-metadata.js"); + +__webpack_require__(/*! ./modules/es7.reflect.get-metadata */ "./node_modules/core-js/modules/es7.reflect.get-metadata.js"); + +__webpack_require__(/*! ./modules/es7.reflect.get-metadata-keys */ "./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js"); + +__webpack_require__(/*! ./modules/es7.reflect.get-own-metadata */ "./node_modules/core-js/modules/es7.reflect.get-own-metadata.js"); + +__webpack_require__(/*! ./modules/es7.reflect.get-own-metadata-keys */ "./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js"); + +__webpack_require__(/*! ./modules/es7.reflect.has-metadata */ "./node_modules/core-js/modules/es7.reflect.has-metadata.js"); + +__webpack_require__(/*! ./modules/es7.reflect.has-own-metadata */ "./node_modules/core-js/modules/es7.reflect.has-own-metadata.js"); + +__webpack_require__(/*! ./modules/es7.reflect.metadata */ "./node_modules/core-js/modules/es7.reflect.metadata.js"); + +__webpack_require__(/*! ./modules/es7.asap */ "./node_modules/core-js/modules/es7.asap.js"); + +__webpack_require__(/*! ./modules/es7.observable */ "./node_modules/core-js/modules/es7.observable.js"); + +__webpack_require__(/*! ./modules/web.timers */ "./node_modules/core-js/modules/web.timers.js"); + +__webpack_require__(/*! ./modules/web.immediate */ "./node_modules/core-js/modules/web.immediate.js"); + +__webpack_require__(/*! ./modules/web.dom.iterable */ "./node_modules/core-js/modules/web.dom.iterable.js"); + +module.exports = __webpack_require__(/*! ./modules/_core */ "./node_modules/core-js/modules/_core.js"); + +/***/ }), + /***/ "./node_modules/cross-fetch/dist/browser-ponyfill.js": /*!***********************************************************!*\ !*** ./node_modules/cross-fetch/dist/browser-ponyfill.js ***! @@ -47556,7 +69112,7 @@ if (true) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); -var version = "ethers/5.5.4"; +var version = "ethers/5.6.4"; /***/ }), @@ -47592,7 +69148,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _ethersproject_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/constants */ "./node_modules/@ethersproject/constants/lib.esm/index.js"); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "constants", function() { return _ethersproject_constants__WEBPACK_IMPORTED_MODULE_4__; }); -/* harmony import */ var _ethersproject_providers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/providers */ "./node_modules/@ethersproject/providers/lib.esm/index.js"); +/* harmony import */ var _ethersproject_providers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/providers */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/index.js"); /* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "providers", function() { return _ethersproject_providers__WEBPACK_IMPORTED_MODULE_5__; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getDefaultProvider", function() { return _ethersproject_providers__WEBPACK_IMPORTED_MODULE_5__["getDefaultProvider"]; }); @@ -47698,7 +69254,7 @@ try { /*!**********************************************!*\ !*** ./node_modules/ethers/lib.esm/utils.js ***! \**********************************************/ -/*! exports provided: AbiCoder, defaultAbiCoder, Fragment, ConstructorFragment, ErrorFragment, EventFragment, FunctionFragment, ParamType, FormatTypes, checkResultErrors, Logger, RLP, _fetchData, fetchJson, poll, checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy, arrayify, concat, stripZeros, zeroPad, isBytes, isBytesLike, defaultPath, HDNode, SigningKey, Interface, LogDescription, TransactionDescription, base58, base64, hexlify, isHexString, hexConcat, hexStripZeros, hexValue, hexZeroPad, hexDataLength, hexDataSlice, nameprep, _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs, formatBytes32String, parseBytes32String, hashMessage, namehash, isValidName, id, _TypedDataEncoder, getAddress, getIcapAddress, getContractAddress, getCreate2Address, isAddress, formatEther, parseEther, formatUnits, parseUnits, commify, computeHmac, keccak256, ripemd160, sha256, sha512, randomBytes, shuffled, solidityPack, solidityKeccak256, soliditySha256, splitSignature, joinSignature, accessListify, parseTransaction, serializeTransaction, TransactionTypes, getJsonWalletAddress, computeAddress, recoverAddress, computePublicKey, recoverPublicKey, verifyMessage, verifyTypedData, getAccountPath, mnemonicToEntropy, entropyToMnemonic, isValidMnemonic, mnemonicToSeed, SupportedAlgorithm, UnicodeNormalizationForm, Utf8ErrorReason, Indexed */ +/*! exports provided: AbiCoder, defaultAbiCoder, Fragment, ConstructorFragment, ErrorFragment, EventFragment, FunctionFragment, ParamType, FormatTypes, checkResultErrors, Logger, RLP, _fetchData, fetchJson, poll, checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy, arrayify, concat, stripZeros, zeroPad, isBytes, isBytesLike, defaultPath, HDNode, SigningKey, Interface, LogDescription, TransactionDescription, base58, base64, hexlify, isHexString, hexConcat, hexStripZeros, hexValue, hexZeroPad, hexDataLength, hexDataSlice, nameprep, _toEscapedUtf8String, toUtf8Bytes, toUtf8CodePoints, toUtf8String, Utf8ErrorFuncs, formatBytes32String, parseBytes32String, dnsEncode, hashMessage, namehash, isValidName, id, _TypedDataEncoder, getAddress, getIcapAddress, getContractAddress, getCreate2Address, isAddress, formatEther, parseEther, formatUnits, parseUnits, commify, computeHmac, keccak256, ripemd160, sha256, sha512, randomBytes, shuffled, solidityPack, solidityKeccak256, soliditySha256, splitSignature, joinSignature, accessListify, parseTransaction, serializeTransaction, TransactionTypes, getJsonWalletAddress, computeAddress, recoverAddress, computePublicKey, recoverPublicKey, verifyMessage, verifyTypedData, getAccountPath, mnemonicToEntropy, entropyToMnemonic, isValidMnemonic, mnemonicToSeed, SupportedAlgorithm, UnicodeNormalizationForm, Utf8ErrorReason, Indexed */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -47782,6 +69338,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "joinSignature", function() { return _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_4__["joinSignature"]; }); /* harmony import */ var _ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/hash */ "./node_modules/@ethersproject/hash/lib.esm/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dnsEncode", function() { return _ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__["dnsEncode"]; }); + /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "hashMessage", function() { return _ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__["hashMessage"]; }); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "namehash", function() { return _ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__["namehash"]; }); @@ -47999,7 +69557,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.formatBytes32String = exports.Utf8ErrorFuncs = exports.toUtf8String = exports.toUtf8CodePoints = exports.toUtf8Bytes = exports._toEscapedUtf8String = exports.nameprep = exports.hexDataSlice = exports.hexDataLength = exports.hexZeroPad = exports.hexValue = exports.hexStripZeros = exports.hexConcat = exports.isHexString = exports.hexlify = exports.base64 = exports.base58 = exports.TransactionDescription = exports.LogDescription = exports.Interface = exports.SigningKey = exports.HDNode = exports.defaultPath = exports.isBytesLike = exports.isBytes = exports.zeroPad = exports.stripZeros = exports.concat = exports.arrayify = exports.shallowCopy = exports.resolveProperties = exports.getStatic = exports.defineReadOnly = exports.deepCopy = exports.checkProperties = exports.poll = exports.fetchJson = exports._fetchData = exports.RLP = exports.Logger = exports.checkResultErrors = exports.FormatTypes = exports.ParamType = exports.FunctionFragment = exports.EventFragment = exports.ErrorFragment = exports.ConstructorFragment = exports.Fragment = exports.defaultAbiCoder = exports.AbiCoder = void 0; -exports.Indexed = exports.Utf8ErrorReason = exports.UnicodeNormalizationForm = exports.SupportedAlgorithm = exports.mnemonicToSeed = exports.isValidMnemonic = exports.entropyToMnemonic = exports.mnemonicToEntropy = exports.getAccountPath = exports.verifyTypedData = exports.verifyMessage = exports.recoverPublicKey = exports.computePublicKey = exports.recoverAddress = exports.computeAddress = exports.getJsonWalletAddress = exports.TransactionTypes = exports.serializeTransaction = exports.parseTransaction = exports.accessListify = exports.joinSignature = exports.splitSignature = exports.soliditySha256 = exports.solidityKeccak256 = exports.solidityPack = exports.shuffled = exports.randomBytes = exports.sha512 = exports.sha256 = exports.ripemd160 = exports.keccak256 = exports.computeHmac = exports.commify = exports.parseUnits = exports.formatUnits = exports.parseEther = exports.formatEther = exports.isAddress = exports.getCreate2Address = exports.getContractAddress = exports.getIcapAddress = exports.getAddress = exports._TypedDataEncoder = exports.id = exports.isValidName = exports.namehash = exports.hashMessage = exports.parseBytes32String = void 0; +exports.Indexed = exports.Utf8ErrorReason = exports.UnicodeNormalizationForm = exports.SupportedAlgorithm = exports.mnemonicToSeed = exports.isValidMnemonic = exports.entropyToMnemonic = exports.mnemonicToEntropy = exports.getAccountPath = exports.verifyTypedData = exports.verifyMessage = exports.recoverPublicKey = exports.computePublicKey = exports.recoverAddress = exports.computeAddress = exports.getJsonWalletAddress = exports.TransactionTypes = exports.serializeTransaction = exports.parseTransaction = exports.accessListify = exports.joinSignature = exports.splitSignature = exports.soliditySha256 = exports.solidityKeccak256 = exports.solidityPack = exports.shuffled = exports.randomBytes = exports.sha512 = exports.sha256 = exports.ripemd160 = exports.keccak256 = exports.computeHmac = exports.commify = exports.parseUnits = exports.formatUnits = exports.parseEther = exports.formatEther = exports.isAddress = exports.getCreate2Address = exports.getContractAddress = exports.getIcapAddress = exports.getAddress = exports._TypedDataEncoder = exports.id = exports.isValidName = exports.namehash = exports.hashMessage = exports.dnsEncode = exports.parseBytes32String = void 0; var abi_1 = __webpack_require__(/*! @ethersproject/abi */ "./node_modules/@ethersproject/abi/lib.esm/index.js"); @@ -48241,6 +69799,12 @@ Object.defineProperty(exports, "_TypedDataEncoder", { return hash_1._TypedDataEncoder; } }); +Object.defineProperty(exports, "dnsEncode", { + enumerable: true, + get: function get() { + return hash_1.dnsEncode; + } +}); Object.defineProperty(exports, "hashMessage", { enumerable: true, get: function get() { @@ -48649,6 +70213,9928 @@ Object.defineProperty(exports, "Utf8ErrorReason", { } }); +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js ***! + \***************************************************************************************/ +/*! exports provided: version */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "version", function() { return version; }); +var version = "providers/5.6.4"; + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/alchemy-provider.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/alchemy-provider.js ***! + \***********************************************************************************************/ +/*! exports provided: AlchemyWebSocketProvider, AlchemyProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AlchemyWebSocketProvider", function() { return AlchemyWebSocketProvider; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AlchemyProvider", function() { return AlchemyProvider; }); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./formatter */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/formatter.js"); +/* harmony import */ var _websocket_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./websocket-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/websocket-provider.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +/* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__["Logger"](_version__WEBPACK_IMPORTED_MODULE_4__["version"]); + // This key was provided to ethers.js by Alchemy to be used by the +// default provider, but it is recommended that for your own +// production environments, that you acquire your own API key at: +// https://dashboard.alchemyapi.io + +var defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC"; +var AlchemyWebSocketProvider = /*#__PURE__*/function (_WebSocketProvider) { + _inherits(AlchemyWebSocketProvider, _WebSocketProvider); + + var _super = _createSuper(AlchemyWebSocketProvider); + + function AlchemyWebSocketProvider(network, apiKey) { + var _this; + + _classCallCheck(this, AlchemyWebSocketProvider); + + var provider = new AlchemyProvider(network, apiKey); + var url = provider.connection.url.replace(/^http/i, "ws").replace(".alchemyapi.", ".ws.alchemyapi."); + _this = _super.call(this, url, provider.network); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this), "apiKey", provider.apiKey); + return _this; + } + + _createClass(AlchemyWebSocketProvider, [{ + key: "isCommunityResource", + value: function isCommunityResource() { + return this.apiKey === defaultApiKey; + } + }]); + + return AlchemyWebSocketProvider; +}(_websocket_provider__WEBPACK_IMPORTED_MODULE_2__["WebSocketProvider"]); +var AlchemyProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) { + _inherits(AlchemyProvider, _UrlJsonRpcProvider); + + var _super2 = _createSuper(AlchemyProvider); + + function AlchemyProvider() { + _classCallCheck(this, AlchemyProvider); + + return _super2.apply(this, arguments); + } + + _createClass(AlchemyProvider, [{ + key: "isCommunityResource", + value: function isCommunityResource() { + return this.apiKey === defaultApiKey; + } + }], [{ + key: "getWebSocketProvider", + value: function getWebSocketProvider(network, apiKey) { + return new AlchemyWebSocketProvider(network, apiKey); + } + }, { + key: "getApiKey", + value: function getApiKey(apiKey) { + if (apiKey == null) { + return defaultApiKey; + } + + if (apiKey && typeof apiKey !== "string") { + logger.throwArgumentError("invalid apiKey", "apiKey", apiKey); + } + + return apiKey; + } + }, { + key: "getUrl", + value: function getUrl(network, apiKey) { + var host = null; + + switch (network.name) { + case "homestead": + host = "eth-mainnet.alchemyapi.io/v2/"; + break; + + case "ropsten": + host = "eth-ropsten.alchemyapi.io/v2/"; + break; + + case "rinkeby": + host = "eth-rinkeby.alchemyapi.io/v2/"; + break; + + case "goerli": + host = "eth-goerli.alchemyapi.io/v2/"; + break; + + case "kovan": + host = "eth-kovan.alchemyapi.io/v2/"; + break; + + case "matic": + host = "polygon-mainnet.g.alchemy.com/v2/"; + break; + + case "maticmum": + host = "polygon-mumbai.g.alchemy.com/v2/"; + break; + + case "arbitrum": + host = "arb-mainnet.g.alchemy.com/v2/"; + break; + + case "arbitrum-rinkeby": + host = "arb-rinkeby.g.alchemy.com/v2/"; + break; + + case "optimism": + host = "opt-mainnet.g.alchemy.com/v2/"; + break; + + case "optimism-kovan": + host = "opt-kovan.g.alchemy.com/v2/"; + break; + + default: + logger.throwArgumentError("unsupported network", "network", arguments[0]); + } + + return { + allowGzip: true, + url: "https:/" + "/" + host + apiKey, + throttleCallback: function throttleCallback(attempt, url) { + if (apiKey === defaultApiKey) { + Object(_formatter__WEBPACK_IMPORTED_MODULE_1__["showThrottleMessage"])(); + } + + return Promise.resolve(true); + } + }; + } + }]); + + return AlchemyProvider; +}(_url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_5__["UrlJsonRpcProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/ankr-provider.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/ankr-provider.js ***! + \********************************************************************************************/ +/*! exports provided: AnkrProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnkrProvider", function() { return AnkrProvider; }); +/* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./formatter */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/formatter.js"); +/* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_2__["Logger"](_version__WEBPACK_IMPORTED_MODULE_3__["version"]); +var defaultApiKey = "9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972"; + +function getHost(name) { + switch (name) { + case "homestead": + return "rpc.ankr.com/eth/"; + + case "matic": + return "rpc.ankr.com/polygon/"; + + case "arbitrum": + return "rpc.ankr.com/arbitrum/"; + } + + return logger.throwArgumentError("unsupported network", "name", name); +} + +var AnkrProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) { + _inherits(AnkrProvider, _UrlJsonRpcProvider); + + var _super = _createSuper(AnkrProvider); + + function AnkrProvider() { + _classCallCheck(this, AnkrProvider); + + return _super.apply(this, arguments); + } + + _createClass(AnkrProvider, [{ + key: "isCommunityResource", + value: function isCommunityResource() { + return this.apiKey === defaultApiKey; + } + }], [{ + key: "getApiKey", + value: function getApiKey(apiKey) { + if (apiKey == null) { + return defaultApiKey; + } + + return apiKey; + } + }, { + key: "getUrl", + value: function getUrl(network, apiKey) { + if (apiKey == null) { + apiKey = defaultApiKey; + } + + var connection = { + allowGzip: true, + url: "https:/\/" + getHost(network.name) + apiKey, + throttleCallback: function throttleCallback(attempt, url) { + if (apiKey.apiKey === defaultApiKey) { + Object(_formatter__WEBPACK_IMPORTED_MODULE_0__["showThrottleMessage"])(); + } + + return Promise.resolve(true); + } + }; + + if (apiKey.projectSecret != null) { + connection.user = ""; + connection.password = apiKey.projectSecret; + } + + return connection; + } + }]); + + return AnkrProvider; +}(_url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_1__["UrlJsonRpcProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/base-provider.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/base-provider.js ***! + \********************************************************************************************/ +/*! exports provided: Event, Resolver, BaseProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Event", function() { return Event; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Resolver", function() { return Resolver; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BaseProvider", function() { return BaseProvider; }); +/* harmony import */ var _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-provider */ "./node_modules/@ethersproject/abstract-provider/lib.esm/index.js"); +/* harmony import */ var _ethersproject_basex__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/basex */ "./node_modules/@ethersproject/basex/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/constants */ "./node_modules/@ethersproject/constants/lib.esm/index.js"); +/* harmony import */ var _ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/hash */ "./node_modules/@ethersproject/hash/lib.esm/index.js"); +/* harmony import */ var _ethersproject_networks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/networks */ "./node_modules/@ethersproject/networks/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_sha2__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/sha2 */ "./node_modules/@ethersproject/sha2/lib.esm/index.js"); +/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/strings/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var bech32__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! bech32 */ "./node_modules/bech32/index.js"); +/* harmony import */ var bech32__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(bech32__WEBPACK_IMPORTED_MODULE_11__); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +/* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./formatter */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/formatter.js"); + + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + + + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"](_version__WEBPACK_IMPORTED_MODULE_13__["version"]); + +var MAX_CCIP_REDIRECTS = 10; ////////////////////////////// +// Event Serializeing + +function checkTopic(topic) { + if (topic == null) { + return "null"; + } + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataLength"])(topic) !== 32) { + logger.throwArgumentError("invalid topic", "topic", topic); + } + + return topic.toLowerCase(); +} + +function serializeTopics(topics) { + // Remove trailing null AND-topics; they are redundant + topics = topics.slice(); + + while (topics.length > 0 && topics[topics.length - 1] == null) { + topics.pop(); + } + + return topics.map(function (topic) { + if (Array.isArray(topic)) { + // Only track unique OR-topics + var unique = {}; + topic.forEach(function (topic) { + unique[checkTopic(topic)] = true; + }); // The order of OR-topics does not matter + + var sorted = Object.keys(unique); + sorted.sort(); + return sorted.join("|"); + } else { + return checkTopic(topic); + } + }).join("&"); +} + +function deserializeTopics(data) { + if (data === "") { + return []; + } + + return data.split(/&/g).map(function (topic) { + if (topic === "") { + return []; + } + + var comps = topic.split("|").map(function (topic) { + return topic === "null" ? null : topic; + }); + return comps.length === 1 ? comps[0] : comps; + }); +} + +function getEventTag(eventName) { + if (typeof eventName === "string") { + eventName = eventName.toLowerCase(); + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataLength"])(eventName) === 32) { + return "tx:" + eventName; + } + + if (eventName.indexOf(":") === -1) { + return eventName; + } + } else if (Array.isArray(eventName)) { + return "filter:*:" + serializeTopics(eventName); + } else if (_ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__["ForkEvent"].isForkEvent(eventName)) { + logger.warn("not implemented"); + throw new Error("not implemented"); + } else if (eventName && _typeof(eventName) === "object") { + return "filter:" + (eventName.address || "*") + ":" + serializeTopics(eventName.topics || []); + } + + throw new Error("invalid event - " + eventName); +} ////////////////////////////// +// Helper Object + + +function getTime() { + return new Date().getTime(); +} + +function stall(duration) { + return new Promise(function (resolve) { + setTimeout(resolve, duration); + }); +} ////////////////////////////// +// Provider Object + +/** + * EventType + * - "block" + * - "poll" + * - "didPoll" + * - "pending" + * - "error" + * - "network" + * - filter + * - topics array + * - transaction hash + */ + + +var PollableEvents = ["block", "network", "pending", "poll"]; +var Event = /*#__PURE__*/function () { + function Event(tag, listener, once) { + _classCallCheck(this, Event); + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(this, "tag", tag); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(this, "listener", listener); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(this, "once", once); + this._lastBlockNumber = -2; + this._inflight = false; + } + + _createClass(Event, [{ + key: "event", + get: function get() { + switch (this.type) { + case "tx": + return this.hash; + + case "filter": + return this.filter; + } + + return this.tag; + } + }, { + key: "type", + get: function get() { + return this.tag.split(":")[0]; + } + }, { + key: "hash", + get: function get() { + var comps = this.tag.split(":"); + + if (comps[0] !== "tx") { + return null; + } + + return comps[1]; + } + }, { + key: "filter", + get: function get() { + var comps = this.tag.split(":"); + + if (comps[0] !== "filter") { + return null; + } + + var address = comps[1]; + var topics = deserializeTopics(comps[2]); + var filter = {}; + + if (topics.length > 0) { + filter.topics = topics; + } + + if (address && address !== "*") { + filter.address = address; + } + + return filter; + } + }, { + key: "pollable", + value: function pollable() { + return this.tag.indexOf(":") >= 0 || PollableEvents.indexOf(this.tag) >= 0; + } + }]); + + return Event; +}(); +; // https://github.com/satoshilabs/slips/blob/master/slip-0044.md + +var coinInfos = { + "0": { + symbol: "btc", + p2pkh: 0x00, + p2sh: 0x05, + prefix: "bc" + }, + "2": { + symbol: "ltc", + p2pkh: 0x30, + p2sh: 0x32, + prefix: "ltc" + }, + "3": { + symbol: "doge", + p2pkh: 0x1e, + p2sh: 0x16 + }, + "60": { + symbol: "eth", + ilk: "eth" + }, + "61": { + symbol: "etc", + ilk: "eth" + }, + "700": { + symbol: "xdai", + ilk: "eth" + } +}; + +function bytes32ify(value) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexZeroPad"])(_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(value).toHexString(), 32); +} // Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d) + + +function base58Encode(data) { + return _ethersproject_basex__WEBPACK_IMPORTED_MODULE_1__["Base58"].encode(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["concat"])([data, Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(Object(_ethersproject_sha2__WEBPACK_IMPORTED_MODULE_8__["sha256"])(Object(_ethersproject_sha2__WEBPACK_IMPORTED_MODULE_8__["sha256"])(data)), 0, 4)])); +} + +var matcherIpfs = new RegExp("^(ipfs):/\/(.*)$", "i"); +var matchers = [new RegExp("^(https):/\/(.*)$", "i"), new RegExp("^(data):(.*)$", "i"), matcherIpfs, new RegExp("^eip155:[0-9]+/(erc[0-9]+):(.*)$", "i")]; + +function _parseString(result, start) { + try { + return Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_9__["toUtf8String"])(_parseBytes(result, start)); + } catch (error) {} + + return null; +} + +function _parseBytes(result, start) { + if (result === "0x") { + return null; + } + + var offset = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(result, start, start + 32)).toNumber(); + var length = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(result, offset, offset + 32)).toNumber(); + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(result, offset + 32, offset + 32 + length); +} // Trim off the ipfs:// prefix and return the default gateway URL + + +function getIpfsLink(link) { + if (link.match(/^ipfs:\/\/ipfs\//i)) { + link = link.substring(12); + } else if (link.match(/^ipfs:\/\//i)) { + link = link.substring(7); + } else { + logger.throwArgumentError("unsupported IPFS format", "link", link); + } + + return "https://gateway.ipfs.io/ipfs/".concat(link); +} + +function numPad(value) { + var result = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["arrayify"])(value); + + if (result.length > 32) { + throw new Error("internal; should not happen"); + } + + var padded = new Uint8Array(32); + padded.set(result, 32 - result.length); + return padded; +} + +function bytesPad(value) { + if (value.length % 32 === 0) { + return value; + } + + var result = new Uint8Array(Math.ceil(value.length / 32) * 32); + result.set(value); + return result; +} // ABI Encodes a series of (bytes, bytes, ...) + + +function encodeBytes(datas) { + var result = []; + var byteCount = 0; // Add place-holders for pointers as we add items + + for (var i = 0; i < datas.length; i++) { + result.push(null); + byteCount += 32; + } + + for (var _i = 0; _i < datas.length; _i++) { + var data = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["arrayify"])(datas[_i]); // Update the bytes offset + + result[_i] = numPad(byteCount); // The length and padded value of data + + result.push(numPad(data.length)); + result.push(bytesPad(data)); + byteCount += 32 + Math.ceil(data.length / 32) * 32; + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexConcat"])(result); +} + +var Resolver = /*#__PURE__*/function () { + // The resolvedAddress is only for creating a ReverseLookup resolver + function Resolver(provider, address, name, resolvedAddress) { + _classCallCheck(this, Resolver); + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(this, "provider", provider); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(this, "name", name); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(this, "address", provider.formatter.address(address)); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(this, "_resolvedAddress", resolvedAddress); + } + + _createClass(Resolver, [{ + key: "supportsWildcard", + value: function supportsWildcard() { + var _this = this; + + if (!this._supportsEip2544) { + // supportsInterface(bytes4 = selector("resolve(bytes,bytes)")) + this._supportsEip2544 = this.provider.call({ + to: this.address, + data: "0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000" + }).then(function (result) { + return _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(result).eq(1); + })["catch"](function (error) { + if (error.code === _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION) { + return false; + } // Rethrow the error: link is down, etc. Let future attempts retry. + + + _this._supportsEip2544 = null; + throw error; + }); + } + + return this._supportsEip2544; + } + }, { + key: "_fetch", + value: function _fetch(selector, parameters) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var tx, parseBytes, result; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + // e.g. keccak256("addr(bytes32,uint256)") + tx = { + to: this.address, + ccipReadEnabled: true, + data: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexConcat"])([selector, Object(_ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__["namehash"])(this.name), parameters || "0x"]) + }; // Wildcard support; use EIP-2544 to resolve the request + + parseBytes = false; + _context.next = 4; + return this.supportsWildcard(); + + case 4: + if (!_context.sent) { + _context.next = 7; + break; + } + + parseBytes = true; // selector("resolve(bytes,bytes)") + + tx.data = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexConcat"])(["0x9061b923", encodeBytes([Object(_ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__["dnsEncode"])(this.name), tx.data])]); + + case 7: + _context.prev = 7; + _context.next = 10; + return this.provider.call(tx); + + case 10: + result = _context.sent; + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["arrayify"])(result).length % 32 === 4) { + logger.throwError("resolver threw error", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION, { + transaction: tx, + data: result + }); + } + + if (parseBytes) { + result = _parseBytes(result, 0); + } + + return _context.abrupt("return", result); + + case 16: + _context.prev = 16; + _context.t0 = _context["catch"](7); + + if (!(_context.t0.code === _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION)) { + _context.next = 20; + break; + } + + return _context.abrupt("return", null); + + case 20: + throw _context.t0; + + case 21: + case "end": + return _context.stop(); + } + } + }, _callee, this, [[7, 16]]); + })); + } + }, { + key: "_fetchBytes", + value: function _fetchBytes(selector, parameters) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var result; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this._fetch(selector, parameters); + + case 2: + result = _context2.sent; + + if (!(result != null)) { + _context2.next = 5; + break; + } + + return _context2.abrupt("return", _parseBytes(result, 0)); + + case 5: + return _context2.abrupt("return", null); + + case 6: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + } + }, { + key: "_getAddress", + value: function _getAddress(coinType, hexBytes) { + var coinInfo = coinInfos[String(coinType)]; + + if (coinInfo == null) { + logger.throwError("unsupported coin type: ".concat(coinType), _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "getAddress(".concat(coinType, ")") + }); + } + + if (coinInfo.ilk === "eth") { + return this.provider.formatter.address(hexBytes); + } + + var bytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["arrayify"])(hexBytes); // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG + + if (coinInfo.p2pkh != null) { + var p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/); + + if (p2pkh) { + var length = parseInt(p2pkh[1], 16); + + if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) { + return base58Encode(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["concat"])([[coinInfo.p2pkh], "0x" + p2pkh[2]])); + } + } + } // P2SH: OP_HASH160 OP_EQUAL + + + if (coinInfo.p2sh != null) { + var p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/); + + if (p2sh) { + var _length = parseInt(p2sh[1], 16); + + if (p2sh[2].length === _length * 2 && _length >= 1 && _length <= 75) { + return base58Encode(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["concat"])([[coinInfo.p2sh], "0x" + p2sh[2]])); + } + } + } // Bech32 + + + if (coinInfo.prefix != null) { + var _length2 = bytes[1]; // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program + + var _version = bytes[0]; + + if (_version === 0x00) { + if (_length2 !== 20 && _length2 !== 32) { + _version = -1; + } + } else { + _version = -1; + } + + if (_version >= 0 && bytes.length === 2 + _length2 && _length2 >= 1 && _length2 <= 75) { + var words = bech32__WEBPACK_IMPORTED_MODULE_11___default.a.toWords(bytes.slice(2)); + words.unshift(_version); + return bech32__WEBPACK_IMPORTED_MODULE_11___default.a.encode(coinInfo.prefix, words); + } + } + + return null; + } + }, { + key: "getAddress", + value: function getAddress(coinType) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var result, hexBytes, address; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + if (coinType == null) { + coinType = 60; + } // If Ethereum, use the standard `addr(bytes32)` + + + if (!(coinType === 60)) { + _context3.next = 16; + break; + } + + _context3.prev = 2; + _context3.next = 5; + return this._fetch("0x3b3b57de"); + + case 5: + result = _context3.sent; + + if (!(result === "0x" || result === _ethersproject_constants__WEBPACK_IMPORTED_MODULE_4__["HashZero"])) { + _context3.next = 8; + break; + } + + return _context3.abrupt("return", null); + + case 8: + return _context3.abrupt("return", this.provider.formatter.callAddress(result)); + + case 11: + _context3.prev = 11; + _context3.t0 = _context3["catch"](2); + + if (!(_context3.t0.code === _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION)) { + _context3.next = 15; + break; + } + + return _context3.abrupt("return", null); + + case 15: + throw _context3.t0; + + case 16: + _context3.next = 18; + return this._fetchBytes("0xf1cb7e06", bytes32ify(coinType)); + + case 18: + hexBytes = _context3.sent; + + if (!(hexBytes == null || hexBytes === "0x")) { + _context3.next = 21; + break; + } + + return _context3.abrupt("return", null); + + case 21: + // Compute the address + address = this._getAddress(coinType, hexBytes); + + if (address == null) { + logger.throwError("invalid or unsupported coin data", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "getAddress(".concat(coinType, ")"), + coinType: coinType, + data: hexBytes + }); + } + + return _context3.abrupt("return", address); + + case 24: + case "end": + return _context3.stop(); + } + } + }, _callee3, this, [[2, 11]]); + })); + } + }, { + key: "getAvatar", + value: function getAvatar() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { + var linkage, avatar, i, match, scheme, selector, owner, comps, addr, tokenId, tokenOwner, balance, tx, metadataUrl, metadata, imageUrl, ipfs; + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + linkage = [{ + type: "name", + content: this.name + }]; + _context4.prev = 1; + _context4.next = 4; + return this.getText("avatar"); + + case 4: + avatar = _context4.sent; + + if (!(avatar == null)) { + _context4.next = 7; + break; + } + + return _context4.abrupt("return", null); + + case 7: + i = 0; + + case 8: + if (!(i < matchers.length)) { + _context4.next = 91; + break; + } + + match = avatar.match(matchers[i]); + + if (!(match == null)) { + _context4.next = 12; + break; + } + + return _context4.abrupt("continue", 88); + + case 12: + scheme = match[1].toLowerCase(); + _context4.t0 = scheme; + _context4.next = _context4.t0 === "https" ? 16 : _context4.t0 === "data" ? 18 : _context4.t0 === "ipfs" ? 20 : _context4.t0 === "erc721" ? 22 : _context4.t0 === "erc1155" ? 22 : 88; + break; + + case 16: + linkage.push({ + type: "url", + content: avatar + }); + return _context4.abrupt("return", { + linkage: linkage, + url: avatar + }); + + case 18: + linkage.push({ + type: "data", + content: avatar + }); + return _context4.abrupt("return", { + linkage: linkage, + url: avatar + }); + + case 20: + linkage.push({ + type: "ipfs", + content: avatar + }); + return _context4.abrupt("return", { + linkage: linkage, + url: getIpfsLink(avatar) + }); + + case 22: + // Depending on the ERC type, use tokenURI(uint256) or url(uint256) + selector = scheme === "erc721" ? "0xc87b56dd" : "0x0e89341c"; + linkage.push({ + type: scheme, + content: avatar + }); // The owner of this name + + _context4.t1 = this._resolvedAddress; + + if (_context4.t1) { + _context4.next = 29; + break; + } + + _context4.next = 28; + return this.getAddress(); + + case 28: + _context4.t1 = _context4.sent; + + case 29: + owner = _context4.t1; + comps = (match[2] || "").split("/"); + + if (!(comps.length !== 2)) { + _context4.next = 33; + break; + } + + return _context4.abrupt("return", null); + + case 33: + _context4.next = 35; + return this.provider.formatter.address(comps[0]); + + case 35: + addr = _context4.sent; + tokenId = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexZeroPad"])(_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(comps[1]).toHexString(), 32); // Check that this account owns the token + + if (!(scheme === "erc721")) { + _context4.next = 48; + break; + } + + _context4.t2 = this.provider.formatter; + _context4.next = 41; + return this.provider.call({ + to: addr, + data: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexConcat"])(["0x6352211e", tokenId]) + }); + + case 41: + _context4.t3 = _context4.sent; + tokenOwner = _context4.t2.callAddress.call(_context4.t2, _context4.t3); + + if (!(owner !== tokenOwner)) { + _context4.next = 45; + break; + } + + return _context4.abrupt("return", null); + + case 45: + linkage.push({ + type: "owner", + content: tokenOwner + }); + _context4.next = 57; + break; + + case 48: + if (!(scheme === "erc1155")) { + _context4.next = 57; + break; + } + + _context4.t4 = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"]; + _context4.next = 52; + return this.provider.call({ + to: addr, + data: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexConcat"])(["0x00fdd58e", Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexZeroPad"])(owner, 32), tokenId]) + }); + + case 52: + _context4.t5 = _context4.sent; + balance = _context4.t4.from.call(_context4.t4, _context4.t5); + + if (!balance.isZero()) { + _context4.next = 56; + break; + } + + return _context4.abrupt("return", null); + + case 56: + linkage.push({ + type: "balance", + content: balance.toString() + }); + + case 57: + // Call the token contract for the metadata URL + tx = { + to: this.provider.formatter.address(comps[0]), + data: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexConcat"])([selector, tokenId]) + }; + _context4.t6 = _parseString; + _context4.next = 61; + return this.provider.call(tx); + + case 61: + _context4.t7 = _context4.sent; + metadataUrl = (0, _context4.t6)(_context4.t7, 0); + + if (!(metadataUrl == null)) { + _context4.next = 65; + break; + } + + return _context4.abrupt("return", null); + + case 65: + linkage.push({ + type: "metadata-url-base", + content: metadataUrl + }); // ERC-1155 allows a generic {id} in the URL + + if (scheme === "erc1155") { + metadataUrl = metadataUrl.replace("{id}", tokenId.substring(2)); + linkage.push({ + type: "metadata-url-expanded", + content: metadataUrl + }); + } // Transform IPFS metadata links + + + if (metadataUrl.match(/^ipfs:/i)) { + metadataUrl = getIpfsLink(metadataUrl); + } + + linkage.push({ + type: "metadata-url", + content: metadataUrl + }); // Get the token metadata + + _context4.next = 71; + return Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_10__["fetchJson"])(metadataUrl); + + case 71: + metadata = _context4.sent; + + if (metadata) { + _context4.next = 74; + break; + } + + return _context4.abrupt("return", null); + + case 74: + linkage.push({ + type: "metadata", + content: JSON.stringify(metadata) + }); // Pull the image URL out + + imageUrl = metadata.image; + + if (!(typeof imageUrl !== "string")) { + _context4.next = 78; + break; + } + + return _context4.abrupt("return", null); + + case 78: + if (!imageUrl.match(/^(https:\/\/|data:)/i)) { + _context4.next = 81; + break; + } + + _context4.next = 86; + break; + + case 81: + // Transform IPFS link to gateway + ipfs = imageUrl.match(matcherIpfs); + + if (!(ipfs == null)) { + _context4.next = 84; + break; + } + + return _context4.abrupt("return", null); + + case 84: + linkage.push({ + type: "url-ipfs", + content: imageUrl + }); + imageUrl = getIpfsLink(imageUrl); + + case 86: + linkage.push({ + type: "url", + content: imageUrl + }); + return _context4.abrupt("return", { + linkage: linkage, + url: imageUrl + }); + + case 88: + i++; + _context4.next = 8; + break; + + case 91: + _context4.next = 95; + break; + + case 93: + _context4.prev = 93; + _context4.t8 = _context4["catch"](1); + + case 95: + return _context4.abrupt("return", null); + + case 96: + case "end": + return _context4.stop(); + } + } + }, _callee4, this, [[1, 93]]); + })); + } + }, { + key: "getContentHash", + value: function getContentHash() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { + var hexBytes, ipfs, length, ipns, _length3, swarm; + + return regeneratorRuntime.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + _context5.next = 2; + return this._fetchBytes("0xbc1c58d1"); + + case 2: + hexBytes = _context5.sent; + + if (!(hexBytes == null || hexBytes === "0x")) { + _context5.next = 5; + break; + } + + return _context5.abrupt("return", null); + + case 5: + // IPFS (CID: 1, Type: DAG-PB) + ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/); + + if (!ipfs) { + _context5.next = 10; + break; + } + + length = parseInt(ipfs[3], 16); + + if (!(ipfs[4].length === length * 2)) { + _context5.next = 10; + break; + } + + return _context5.abrupt("return", "ipfs:/\/" + _ethersproject_basex__WEBPACK_IMPORTED_MODULE_1__["Base58"].encode("0x" + ipfs[1])); + + case 10: + // IPNS (CID: 1, Type: libp2p-key) + ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/); + + if (!ipns) { + _context5.next = 15; + break; + } + + _length3 = parseInt(ipns[3], 16); + + if (!(ipns[4].length === _length3 * 2)) { + _context5.next = 15; + break; + } + + return _context5.abrupt("return", "ipns:/\/" + _ethersproject_basex__WEBPACK_IMPORTED_MODULE_1__["Base58"].encode("0x" + ipns[1])); + + case 15: + // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32) + swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/); + + if (!swarm) { + _context5.next = 19; + break; + } + + if (!(swarm[1].length === 32 * 2)) { + _context5.next = 19; + break; + } + + return _context5.abrupt("return", "bzz:/\/" + swarm[1]); + + case 19: + return _context5.abrupt("return", logger.throwError("invalid or unsupported content hash data", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "getContentHash()", + data: hexBytes + })); + + case 20: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + } + }, { + key: "getText", + value: function getText(key) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { + var keyBytes, hexBytes; + return regeneratorRuntime.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + // The key encoded as parameter to fetchBytes + keyBytes = Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_9__["toUtf8Bytes"])(key); // The nodehash consumes the first slot, so the string pointer targets + // offset 64, with the length at offset 64 and data starting at offset 96 + + keyBytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["concat"])([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]); // Pad to word-size (32 bytes) + + if (keyBytes.length % 32 !== 0) { + keyBytes = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["concat"])([keyBytes, Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexZeroPad"])("0x", 32 - key.length % 32)]); + } + + _context6.next = 5; + return this._fetchBytes("0x59d1d43c", Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexlify"])(keyBytes)); + + case 5: + hexBytes = _context6.sent; + + if (!(hexBytes == null || hexBytes === "0x")) { + _context6.next = 8; + break; + } + + return _context6.abrupt("return", null); + + case 8: + return _context6.abrupt("return", Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_9__["toUtf8String"])(hexBytes)); + + case 9: + case "end": + return _context6.stop(); + } + } + }, _callee6, this); + })); + } + }]); + + return Resolver; +}(); +var defaultFormatter = null; +var nextPollId = 1; +var BaseProvider = /*#__PURE__*/function (_Provider) { + _inherits(BaseProvider, _Provider); + + var _super = _createSuper(BaseProvider); + + /** + * ready + * + * A Promise that resolves only once the provider is ready. + * + * Sub-classes that call the super with a network without a chainId + * MUST set this. Standard named networks have a known chainId. + * + */ + function BaseProvider(network) { + var _this2; + + _classCallCheck(this, BaseProvider); + + logger.checkNew(this instanceof BaseProvider ? this.constructor : void 0, _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__["Provider"]); + _this2 = _super.call(this); // Events being listened to + + _this2._events = []; + _this2._emitted = { + block: -2 + }; + _this2.disableCcipRead = false; + _this2.formatter = (this instanceof BaseProvider ? this.constructor : void 0).getFormatter(); // If network is any, this Provider allows the underlying + // network to change dynamically, and we auto-detect the + // current network + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(_assertThisInitialized(_this2), "anyNetwork", network === "any"); + + if (_this2.anyNetwork) { + network = _this2.detectNetwork(); + } + + if (network instanceof Promise) { + _this2._networkPromise = network; // Squash any "unhandled promise" errors; that do not need to be handled + + network["catch"](function (error) {}); // Trigger initial network setting (async) + + _this2._ready()["catch"](function (error) {}); + } else { + var knownNetwork = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["getStatic"])(this instanceof BaseProvider ? this.constructor : void 0, "getNetwork")(network); + + if (knownNetwork) { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(_assertThisInitialized(_this2), "_network", knownNetwork); + + _this2.emit("network", knownNetwork, null); + } else { + logger.throwArgumentError("invalid network", "network", network); + } + } + + _this2._maxInternalBlockNumber = -1024; + _this2._lastBlockNumber = -2; + _this2._maxFilterBlockRange = 10; + _this2._pollingInterval = 4000; + _this2._fastQueryDate = 0; + return _this2; + } + + _createClass(BaseProvider, [{ + key: "_ready", + value: function _ready() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { + var network; + return regeneratorRuntime.wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + if (!(this._network == null)) { + _context7.next = 17; + break; + } + + network = null; + + if (!this._networkPromise) { + _context7.next = 11; + break; + } + + _context7.prev = 3; + _context7.next = 6; + return this._networkPromise; + + case 6: + network = _context7.sent; + _context7.next = 11; + break; + + case 9: + _context7.prev = 9; + _context7.t0 = _context7["catch"](3); + + case 11: + if (!(network == null)) { + _context7.next = 15; + break; + } + + _context7.next = 14; + return this.detectNetwork(); + + case 14: + network = _context7.sent; + + case 15: + // This should never happen; every Provider sub-class should have + // suggested a network by here (or have thrown). + if (!network) { + logger.throwError("no network detected", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.UNKNOWN_ERROR, {}); + } // Possible this call stacked so do not call defineReadOnly again + + + if (this._network == null) { + if (this.anyNetwork) { + this._network = network; + } else { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["defineReadOnly"])(this, "_network", network); + } + + this.emit("network", network, null); + } + + case 17: + return _context7.abrupt("return", this._network); + + case 18: + case "end": + return _context7.stop(); + } + } + }, _callee7, this, [[3, 9]]); + })); + } // This will always return the most recently established network. + // For "any", this can change (a "network" event is emitted before + // any change is reflected); otherwise this cannot change + + }, { + key: "ready", + get: function get() { + var _this3 = this; + + return Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_10__["poll"])(function () { + return _this3._ready().then(function (network) { + return network; + }, function (error) { + // If the network isn't running yet, we will wait + if (error.code === _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.NETWORK_ERROR && error.event === "noNetwork") { + return undefined; + } + + throw error; + }); + }); + } // @TODO: Remove this and just create a singleton formatter + + }, { + key: "ccipReadFetch", + value: function ccipReadFetch(tx, calldata, urls) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { + var sender, data, errorMessages, i, url, href, json, result, errorMessage; + return regeneratorRuntime.wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + if (!(this.disableCcipRead || urls.length === 0)) { + _context8.next = 2; + break; + } + + return _context8.abrupt("return", null); + + case 2: + sender = tx.to.toLowerCase(); + data = calldata.toLowerCase(); + errorMessages = []; + i = 0; + + case 6: + if (!(i < urls.length)) { + _context8.next = 22; + break; + } + + url = urls[i]; // URL expansion + + href = url.replace("{sender}", sender).replace("{data}", data); // If no {data} is present, use POST; otherwise GET + + json = url.indexOf("{data}") >= 0 ? null : JSON.stringify({ + data: data, + sender: sender + }); + _context8.next = 12; + return Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_10__["fetchJson"])({ + url: href, + errorPassThrough: true + }, json, function (value, response) { + value.status = response.statusCode; + return value; + }); + + case 12: + result = _context8.sent; + + if (!result.data) { + _context8.next = 15; + break; + } + + return _context8.abrupt("return", result.data); + + case 15: + errorMessage = result.message || "unknown error"; // 4xx indicates the result is not present; stop + + if (!(result.status >= 400 && result.status < 500)) { + _context8.next = 18; + break; + } + + return _context8.abrupt("return", logger.throwError("response not found during CCIP fetch: ".concat(errorMessage), _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + url: url, + errorMessage: errorMessage + })); + + case 18: + // 5xx indicates server issue; try the next url + errorMessages.push(errorMessage); + + case 19: + i++; + _context8.next = 6; + break; + + case 22: + return _context8.abrupt("return", logger.throwError("error encountered during CCIP fetch: ".concat(errorMessages.map(function (m) { + return JSON.stringify(m); + }).join(", ")), _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + urls: urls, + errorMessages: errorMessages + })); + + case 23: + case "end": + return _context8.stop(); + } + } + }, _callee8, this); + })); + } // Fetches the blockNumber, but will reuse any result that is less + // than maxAge old or has been requested since the last request + + }, { + key: "_getInternalBlockNumber", + value: function _getInternalBlockNumber(maxAge) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { + var _this4 = this; + + var internalBlockNumber, result, reqTime, checkInternalBlockNumber; + return regeneratorRuntime.wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + _context9.next = 2; + return this._ready(); + + case 2: + if (!(maxAge > 0)) { + _context9.next = 20; + break; + } + + case 3: + if (!this._internalBlockNumber) { + _context9.next = 20; + break; + } + + // ..."remember" which fetch we started with + internalBlockNumber = this._internalBlockNumber; + _context9.prev = 5; + _context9.next = 8; + return internalBlockNumber; + + case 8: + result = _context9.sent; + + if (!(getTime() - result.respTime <= maxAge)) { + _context9.next = 11; + break; + } + + return _context9.abrupt("return", result.blockNumber); + + case 11: + return _context9.abrupt("break", 20); + + case 14: + _context9.prev = 14; + _context9.t0 = _context9["catch"](5); + + if (!(this._internalBlockNumber === internalBlockNumber)) { + _context9.next = 18; + break; + } + + return _context9.abrupt("break", 20); + + case 18: + _context9.next = 3; + break; + + case 20: + reqTime = getTime(); + checkInternalBlockNumber = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])({ + blockNumber: this.perform("getBlockNumber", {}), + networkError: this.getNetwork().then(function (network) { + return null; + }, function (error) { + return error; + }) + }).then(function (_ref) { + var blockNumber = _ref.blockNumber, + networkError = _ref.networkError; + + if (networkError) { + // Unremember this bad internal block number + if (_this4._internalBlockNumber === checkInternalBlockNumber) { + _this4._internalBlockNumber = null; + } + + throw networkError; + } + + var respTime = getTime(); + blockNumber = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(blockNumber).toNumber(); + + if (blockNumber < _this4._maxInternalBlockNumber) { + blockNumber = _this4._maxInternalBlockNumber; + } + + _this4._maxInternalBlockNumber = blockNumber; + + _this4._setFastBlockNumber(blockNumber); // @TODO: Still need this? + + + return { + blockNumber: blockNumber, + reqTime: reqTime, + respTime: respTime + }; + }); + this._internalBlockNumber = checkInternalBlockNumber; // Swallow unhandled exceptions; if needed they are handled else where + + checkInternalBlockNumber["catch"](function (error) { + // Don't null the dead (rejected) fetch, if it has already been updated + if (_this4._internalBlockNumber === checkInternalBlockNumber) { + _this4._internalBlockNumber = null; + } + }); + _context9.next = 26; + return checkInternalBlockNumber; + + case 26: + return _context9.abrupt("return", _context9.sent.blockNumber); + + case 27: + case "end": + return _context9.stop(); + } + } + }, _callee9, this, [[5, 14]]); + })); + } + }, { + key: "poll", + value: function poll() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee10() { + var _this5 = this; + + var pollId, runners, blockNumber, i; + return regeneratorRuntime.wrap(function _callee10$(_context10) { + while (1) { + switch (_context10.prev = _context10.next) { + case 0: + pollId = nextPollId++; // Track all running promises, so we can trigger a post-poll once they are complete + + runners = []; + blockNumber = null; + _context10.prev = 3; + _context10.next = 6; + return this._getInternalBlockNumber(100 + this.pollingInterval / 2); + + case 6: + blockNumber = _context10.sent; + _context10.next = 13; + break; + + case 9: + _context10.prev = 9; + _context10.t0 = _context10["catch"](3); + this.emit("error", _context10.t0); + return _context10.abrupt("return"); + + case 13: + this._setFastBlockNumber(blockNumber); // Emit a poll event after we have the latest (fast) block number + + + this.emit("poll", pollId, blockNumber); // If the block has not changed, meh. + + if (!(blockNumber === this._lastBlockNumber)) { + _context10.next = 18; + break; + } + + this.emit("didPoll", pollId); + return _context10.abrupt("return"); + + case 18: + // First polling cycle, trigger a "block" events + if (this._emitted.block === -2) { + this._emitted.block = blockNumber - 1; + } + + if (Math.abs(this._emitted.block - blockNumber) > 1000) { + logger.warn("network block skew detected; skipping block events (emitted=".concat(this._emitted.block, " blockNumber").concat(blockNumber, ")")); + this.emit("error", logger.makeError("network block skew detected", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.NETWORK_ERROR, { + blockNumber: blockNumber, + event: "blockSkew", + previousBlockNumber: this._emitted.block + })); + this.emit("block", blockNumber); + } else { + // Notify all listener for each block that has passed + for (i = this._emitted.block + 1; i <= blockNumber; i++) { + this.emit("block", i); + } + } // The emitted block was updated, check for obsolete events + + + if (this._emitted.block !== blockNumber) { + this._emitted.block = blockNumber; + Object.keys(this._emitted).forEach(function (key) { + // The block event does not expire + if (key === "block") { + return; + } // The block we were at when we emitted this event + + + var eventBlockNumber = _this5._emitted[key]; // We cannot garbage collect pending transactions or blocks here + // They should be garbage collected by the Provider when setting + // "pending" events + + if (eventBlockNumber === "pending") { + return; + } // Evict any transaction hashes or block hashes over 12 blocks + // old, since they should not return null anyways + + + if (blockNumber - eventBlockNumber > 12) { + delete _this5._emitted[key]; + } + }); + } // First polling cycle + + + if (this._lastBlockNumber === -2) { + this._lastBlockNumber = blockNumber - 1; + } // Find all transaction hashes we are waiting on + + + this._events.forEach(function (event) { + switch (event.type) { + case "tx": + { + var hash = event.hash; + + var runner = _this5.getTransactionReceipt(hash).then(function (receipt) { + if (!receipt || receipt.blockNumber == null) { + return null; + } + + _this5._emitted["t:" + hash] = receipt.blockNumber; + + _this5.emit(hash, receipt); + + return null; + })["catch"](function (error) { + _this5.emit("error", error); + }); + + runners.push(runner); + break; + } + + case "filter": + { + // We only allow a single getLogs to be in-flight at a time + if (!event._inflight) { + event._inflight = true; // Filter from the last known event; due to load-balancing + // and some nodes returning updated block numbers before + // indexing events, a logs result with 0 entries cannot be + // trusted and we must retry a range which includes it again + + var filter = event.filter; + filter.fromBlock = event._lastBlockNumber + 1; + filter.toBlock = blockNumber; // Prevent fitler ranges from growing too wild + + if (filter.toBlock - _this5._maxFilterBlockRange > filter.fromBlock) { + filter.fromBlock = filter.toBlock - _this5._maxFilterBlockRange; + } + + var _runner = _this5.getLogs(filter).then(function (logs) { + // Allow the next getLogs + event._inflight = false; + + if (logs.length === 0) { + return; + } + + logs.forEach(function (log) { + // Only when we get an event for a given block number + // can we trust the events are indexed + if (log.blockNumber > event._lastBlockNumber) { + event._lastBlockNumber = log.blockNumber; + } // Make sure we stall requests to fetch blocks and txs + + + _this5._emitted["b:" + log.blockHash] = log.blockNumber; + _this5._emitted["t:" + log.transactionHash] = log.blockNumber; + + _this5.emit(filter, log); + }); + })["catch"](function (error) { + _this5.emit("error", error); // Allow another getLogs (the range was not updated) + + + event._inflight = false; + }); + + runners.push(_runner); + } + + break; + } + } + }); + + this._lastBlockNumber = blockNumber; // Once all events for this loop have been processed, emit "didPoll" + + Promise.all(runners).then(function () { + _this5.emit("didPoll", pollId); + })["catch"](function (error) { + _this5.emit("error", error); + }); + return _context10.abrupt("return"); + + case 26: + case "end": + return _context10.stop(); + } + } + }, _callee10, this, [[3, 9]]); + })); + } // Deprecated; do not use this + + }, { + key: "resetEventsBlock", + value: function resetEventsBlock(blockNumber) { + this._lastBlockNumber = blockNumber - 1; + + if (this.polling) { + this.poll(); + } + } + }, { + key: "network", + get: function get() { + return this._network; + } // This method should query the network if the underlying network + // can change, such as when connected to a JSON-RPC backend + + }, { + key: "detectNetwork", + value: function detectNetwork() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee11() { + return regeneratorRuntime.wrap(function _callee11$(_context11) { + while (1) { + switch (_context11.prev = _context11.next) { + case 0: + return _context11.abrupt("return", logger.throwError("provider does not support network detection", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "provider.detectNetwork" + })); + + case 1: + case "end": + return _context11.stop(); + } + } + }, _callee11); + })); + } + }, { + key: "getNetwork", + value: function getNetwork() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee12() { + var network, currentNetwork, error; + return regeneratorRuntime.wrap(function _callee12$(_context12) { + while (1) { + switch (_context12.prev = _context12.next) { + case 0: + _context12.next = 2; + return this._ready(); + + case 2: + network = _context12.sent; + _context12.next = 5; + return this.detectNetwork(); + + case 5: + currentNetwork = _context12.sent; + + if (!(network.chainId !== currentNetwork.chainId)) { + _context12.next = 23; + break; + } + + if (!this.anyNetwork) { + _context12.next = 20; + break; + } + + this._network = currentNetwork; // Reset all internal block number guards and caches + + this._lastBlockNumber = -2; + this._fastBlockNumber = null; + this._fastBlockNumberPromise = null; + this._fastQueryDate = 0; + this._emitted.block = -2; + this._maxInternalBlockNumber = -1024; + this._internalBlockNumber = null; // The "network" event MUST happen before this method resolves + // so any events have a chance to unregister, so we stall an + // additional event loop before returning from /this/ call + + this.emit("network", currentNetwork, network); + _context12.next = 19; + return stall(0); + + case 19: + return _context12.abrupt("return", this._network); + + case 20: + error = logger.makeError("underlying network changed", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.NETWORK_ERROR, { + event: "changed", + network: network, + detectedNetwork: currentNetwork + }); + this.emit("error", error); + throw error; + + case 23: + return _context12.abrupt("return", network); + + case 24: + case "end": + return _context12.stop(); + } + } + }, _callee12, this); + })); + } + }, { + key: "blockNumber", + get: function get() { + var _this6 = this; + + this._getInternalBlockNumber(100 + this.pollingInterval / 2).then(function (blockNumber) { + _this6._setFastBlockNumber(blockNumber); + }, function (error) {}); + + return this._fastBlockNumber != null ? this._fastBlockNumber : -1; + } + }, { + key: "polling", + get: function get() { + return this._poller != null; + }, + set: function set(value) { + var _this7 = this; + + if (value && !this._poller) { + this._poller = setInterval(function () { + _this7.poll(); + }, this.pollingInterval); + + if (!this._bootstrapPoll) { + this._bootstrapPoll = setTimeout(function () { + _this7.poll(); // We block additional polls until the polling interval + // is done, to prevent overwhelming the poll function + + + _this7._bootstrapPoll = setTimeout(function () { + // If polling was disabled, something may require a poke + // since starting the bootstrap poll and it was disabled + if (!_this7._poller) { + _this7.poll(); + } // Clear out the bootstrap so we can do another + + + _this7._bootstrapPoll = null; + }, _this7.pollingInterval); + }, 0); + } + } else if (!value && this._poller) { + clearInterval(this._poller); + this._poller = null; + } + } + }, { + key: "pollingInterval", + get: function get() { + return this._pollingInterval; + }, + set: function set(value) { + var _this8 = this; + + if (typeof value !== "number" || value <= 0 || parseInt(String(value)) != value) { + throw new Error("invalid polling interval"); + } + + this._pollingInterval = value; + + if (this._poller) { + clearInterval(this._poller); + this._poller = setInterval(function () { + _this8.poll(); + }, this._pollingInterval); + } + } + }, { + key: "_getFastBlockNumber", + value: function _getFastBlockNumber() { + var _this9 = this; + + var now = getTime(); // Stale block number, request a newer value + + if (now - this._fastQueryDate > 2 * this._pollingInterval) { + this._fastQueryDate = now; + this._fastBlockNumberPromise = this.getBlockNumber().then(function (blockNumber) { + if (_this9._fastBlockNumber == null || blockNumber > _this9._fastBlockNumber) { + _this9._fastBlockNumber = blockNumber; + } + + return _this9._fastBlockNumber; + }); + } + + return this._fastBlockNumberPromise; + } + }, { + key: "_setFastBlockNumber", + value: function _setFastBlockNumber(blockNumber) { + // Older block, maybe a stale request + if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) { + return; + } // Update the time we updated the blocknumber + + + this._fastQueryDate = getTime(); // Newer block number, use it + + if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) { + this._fastBlockNumber = blockNumber; + this._fastBlockNumberPromise = Promise.resolve(blockNumber); + } + } + }, { + key: "waitForTransaction", + value: function waitForTransaction(transactionHash, confirmations, timeout) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee13() { + return regeneratorRuntime.wrap(function _callee13$(_context13) { + while (1) { + switch (_context13.prev = _context13.next) { + case 0: + return _context13.abrupt("return", this._waitForTransaction(transactionHash, confirmations == null ? 1 : confirmations, timeout || 0, null)); + + case 1: + case "end": + return _context13.stop(); + } + } + }, _callee13, this); + })); + } + }, { + key: "_waitForTransaction", + value: function _waitForTransaction(transactionHash, confirmations, timeout, replaceable) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee16() { + var _this10 = this; + + var receipt; + return regeneratorRuntime.wrap(function _callee16$(_context16) { + while (1) { + switch (_context16.prev = _context16.next) { + case 0: + _context16.next = 2; + return this.getTransactionReceipt(transactionHash); + + case 2: + receipt = _context16.sent; + + if (!((receipt ? receipt.confirmations : 0) >= confirmations)) { + _context16.next = 5; + break; + } + + return _context16.abrupt("return", receipt); + + case 5: + return _context16.abrupt("return", new Promise(function (resolve, reject) { + var cancelFuncs = []; + var done = false; + + var alreadyDone = function alreadyDone() { + if (done) { + return true; + } + + done = true; + cancelFuncs.forEach(function (func) { + func(); + }); + return false; + }; + + var minedHandler = function minedHandler(receipt) { + if (receipt.confirmations < confirmations) { + return; + } + + if (alreadyDone()) { + return; + } + + resolve(receipt); + }; + + _this10.on(transactionHash, minedHandler); + + cancelFuncs.push(function () { + _this10.removeListener(transactionHash, minedHandler); + }); + + if (replaceable) { + var lastBlockNumber = replaceable.startBlock; + var scannedBlock = null; + + var replaceHandler = function replaceHandler(blockNumber) { + return __awaiter(_this10, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee15() { + var _this11 = this; + + return regeneratorRuntime.wrap(function _callee15$(_context15) { + while (1) { + switch (_context15.prev = _context15.next) { + case 0: + if (!done) { + _context15.next = 2; + break; + } + + return _context15.abrupt("return"); + + case 2: + _context15.next = 4; + return stall(1000); + + case 4: + this.getTransactionCount(replaceable.from).then(function (nonce) { + return __awaiter(_this11, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee14() { + var mined, block, ti, tx, _receipt, reason; + + return regeneratorRuntime.wrap(function _callee14$(_context14) { + while (1) { + switch (_context14.prev = _context14.next) { + case 0: + if (!done) { + _context14.next = 2; + break; + } + + return _context14.abrupt("return"); + + case 2: + if (!(nonce <= replaceable.nonce)) { + _context14.next = 6; + break; + } + + lastBlockNumber = blockNumber; + _context14.next = 41; + break; + + case 6: + _context14.next = 8; + return this.getTransaction(transactionHash); + + case 8: + mined = _context14.sent; + + if (!(mined && mined.blockNumber != null)) { + _context14.next = 11; + break; + } + + return _context14.abrupt("return"); + + case 11: + // First time scanning. We start a little earlier for some + // wiggle room here to handle the eventually consistent nature + // of blockchain (e.g. the getTransactionCount was for a + // different block) + if (scannedBlock == null) { + scannedBlock = lastBlockNumber - 3; + + if (scannedBlock < replaceable.startBlock) { + scannedBlock = replaceable.startBlock; + } + } + + case 12: + if (!(scannedBlock <= blockNumber)) { + _context14.next = 41; + break; + } + + if (!done) { + _context14.next = 15; + break; + } + + return _context14.abrupt("return"); + + case 15: + _context14.next = 17; + return this.getBlockWithTransactions(scannedBlock); + + case 17: + block = _context14.sent; + ti = 0; + + case 19: + if (!(ti < block.transactions.length)) { + _context14.next = 38; + break; + } + + tx = block.transactions[ti]; // Successfully mined! + + if (!(tx.hash === transactionHash)) { + _context14.next = 23; + break; + } + + return _context14.abrupt("return"); + + case 23: + if (!(tx.from === replaceable.from && tx.nonce === replaceable.nonce)) { + _context14.next = 35; + break; + } + + if (!done) { + _context14.next = 26; + break; + } + + return _context14.abrupt("return"); + + case 26: + _context14.next = 28; + return this.waitForTransaction(tx.hash, confirmations); + + case 28: + _receipt = _context14.sent; + + if (!alreadyDone()) { + _context14.next = 31; + break; + } + + return _context14.abrupt("return"); + + case 31: + // The reason we were replaced + reason = "replaced"; + + if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) { + reason = "repriced"; + } else if (tx.data === "0x" && tx.from === tx.to && tx.value.isZero()) { + reason = "cancelled"; + } // Explain why we were replaced + + + // Explain why we were replaced + reject(logger.makeError("transaction was replaced", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.TRANSACTION_REPLACED, { + cancelled: reason === "replaced" || reason === "cancelled", + reason: reason, + replacement: this._wrapTransaction(tx), + hash: transactionHash, + receipt: _receipt + })); + return _context14.abrupt("return"); + + case 35: + ti++; + _context14.next = 19; + break; + + case 38: + scannedBlock++; + _context14.next = 12; + break; + + case 41: + if (!done) { + _context14.next = 43; + break; + } + + return _context14.abrupt("return"); + + case 43: + this.once("block", replaceHandler); + + case 44: + case "end": + return _context14.stop(); + } + } + }, _callee14, this); + })); + }, function (error) { + if (done) { + return; + } + + _this11.once("block", replaceHandler); + }); + + case 5: + case "end": + return _context15.stop(); + } + } + }, _callee15, this); + })); + }; + + if (done) { + return; + } + + _this10.once("block", replaceHandler); + + cancelFuncs.push(function () { + _this10.removeListener("block", replaceHandler); + }); + } + + if (typeof timeout === "number" && timeout > 0) { + var timer = setTimeout(function () { + if (alreadyDone()) { + return; + } + + reject(logger.makeError("timeout exceeded", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.TIMEOUT, { + timeout: timeout + })); + }, timeout); + + if (timer.unref) { + timer.unref(); + } + + cancelFuncs.push(function () { + clearTimeout(timer); + }); + } + })); + + case 6: + case "end": + return _context16.stop(); + } + } + }, _callee16, this); + })); + } + }, { + key: "getBlockNumber", + value: function getBlockNumber() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee17() { + return regeneratorRuntime.wrap(function _callee17$(_context17) { + while (1) { + switch (_context17.prev = _context17.next) { + case 0: + return _context17.abrupt("return", this._getInternalBlockNumber(0)); + + case 1: + case "end": + return _context17.stop(); + } + } + }, _callee17, this); + })); + } + }, { + key: "getGasPrice", + value: function getGasPrice() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee18() { + var result; + return regeneratorRuntime.wrap(function _callee18$(_context18) { + while (1) { + switch (_context18.prev = _context18.next) { + case 0: + _context18.next = 2; + return this.getNetwork(); + + case 2: + _context18.next = 4; + return this.perform("getGasPrice", {}); + + case 4: + result = _context18.sent; + _context18.prev = 5; + return _context18.abrupt("return", _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(result)); + + case 9: + _context18.prev = 9; + _context18.t0 = _context18["catch"](5); + return _context18.abrupt("return", logger.throwError("bad result from backend", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + method: "getGasPrice", + result: result, + error: _context18.t0 + })); + + case 12: + case "end": + return _context18.stop(); + } + } + }, _callee18, this, [[5, 9]]); + })); + } + }, { + key: "getBalance", + value: function getBalance(addressOrName, blockTag) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee19() { + var params, result; + return regeneratorRuntime.wrap(function _callee19$(_context19) { + while (1) { + switch (_context19.prev = _context19.next) { + case 0: + _context19.next = 2; + return this.getNetwork(); + + case 2: + _context19.next = 4; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])({ + address: this._getAddress(addressOrName), + blockTag: this._getBlockTag(blockTag) + }); + + case 4: + params = _context19.sent; + _context19.next = 7; + return this.perform("getBalance", params); + + case 7: + result = _context19.sent; + _context19.prev = 8; + return _context19.abrupt("return", _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(result)); + + case 12: + _context19.prev = 12; + _context19.t0 = _context19["catch"](8); + return _context19.abrupt("return", logger.throwError("bad result from backend", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + method: "getBalance", + params: params, + result: result, + error: _context19.t0 + })); + + case 15: + case "end": + return _context19.stop(); + } + } + }, _callee19, this, [[8, 12]]); + })); + } + }, { + key: "getTransactionCount", + value: function getTransactionCount(addressOrName, blockTag) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee20() { + var params, result; + return regeneratorRuntime.wrap(function _callee20$(_context20) { + while (1) { + switch (_context20.prev = _context20.next) { + case 0: + _context20.next = 2; + return this.getNetwork(); + + case 2: + _context20.next = 4; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])({ + address: this._getAddress(addressOrName), + blockTag: this._getBlockTag(blockTag) + }); + + case 4: + params = _context20.sent; + _context20.next = 7; + return this.perform("getTransactionCount", params); + + case 7: + result = _context20.sent; + _context20.prev = 8; + return _context20.abrupt("return", _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(result).toNumber()); + + case 12: + _context20.prev = 12; + _context20.t0 = _context20["catch"](8); + return _context20.abrupt("return", logger.throwError("bad result from backend", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + method: "getTransactionCount", + params: params, + result: result, + error: _context20.t0 + })); + + case 15: + case "end": + return _context20.stop(); + } + } + }, _callee20, this, [[8, 12]]); + })); + } + }, { + key: "getCode", + value: function getCode(addressOrName, blockTag) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee21() { + var params, result; + return regeneratorRuntime.wrap(function _callee21$(_context21) { + while (1) { + switch (_context21.prev = _context21.next) { + case 0: + _context21.next = 2; + return this.getNetwork(); + + case 2: + _context21.next = 4; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])({ + address: this._getAddress(addressOrName), + blockTag: this._getBlockTag(blockTag) + }); + + case 4: + params = _context21.sent; + _context21.next = 7; + return this.perform("getCode", params); + + case 7: + result = _context21.sent; + _context21.prev = 8; + return _context21.abrupt("return", Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexlify"])(result)); + + case 12: + _context21.prev = 12; + _context21.t0 = _context21["catch"](8); + return _context21.abrupt("return", logger.throwError("bad result from backend", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + method: "getCode", + params: params, + result: result, + error: _context21.t0 + })); + + case 15: + case "end": + return _context21.stop(); + } + } + }, _callee21, this, [[8, 12]]); + })); + } + }, { + key: "getStorageAt", + value: function getStorageAt(addressOrName, position, blockTag) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee22() { + var params, result; + return regeneratorRuntime.wrap(function _callee22$(_context22) { + while (1) { + switch (_context22.prev = _context22.next) { + case 0: + _context22.next = 2; + return this.getNetwork(); + + case 2: + _context22.next = 4; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])({ + address: this._getAddress(addressOrName), + blockTag: this._getBlockTag(blockTag), + position: Promise.resolve(position).then(function (p) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexValue"])(p); + }) + }); + + case 4: + params = _context22.sent; + _context22.next = 7; + return this.perform("getStorageAt", params); + + case 7: + result = _context22.sent; + _context22.prev = 8; + return _context22.abrupt("return", Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexlify"])(result)); + + case 12: + _context22.prev = 12; + _context22.t0 = _context22["catch"](8); + return _context22.abrupt("return", logger.throwError("bad result from backend", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + method: "getStorageAt", + params: params, + result: result, + error: _context22.t0 + })); + + case 15: + case "end": + return _context22.stop(); + } + } + }, _callee22, this, [[8, 12]]); + })); + } // This should be called by any subclass wrapping a TransactionResponse + + }, { + key: "_wrapTransaction", + value: function _wrapTransaction(tx, hash, startBlock) { + var _this12 = this; + + if (hash != null && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataLength"])(hash) !== 32) { + throw new Error("invalid response - sendTransaction"); + } + + var result = tx; // Check the hash we expect is the same as the hash the server reported + + if (hash != null && tx.hash !== hash) { + logger.throwError("Transaction hash mismatch from Provider.sendTransaction.", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.UNKNOWN_ERROR, { + expectedHash: tx.hash, + returnedHash: hash + }); + } + + result.wait = function (confirms, timeout) { + return __awaiter(_this12, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee23() { + var replacement, receipt; + return regeneratorRuntime.wrap(function _callee23$(_context23) { + while (1) { + switch (_context23.prev = _context23.next) { + case 0: + if (confirms == null) { + confirms = 1; + } + + if (timeout == null) { + timeout = 0; + } // Get the details to detect replacement + + + replacement = undefined; + + if (confirms !== 0 && startBlock != null) { + replacement = { + data: tx.data, + from: tx.from, + nonce: tx.nonce, + to: tx.to, + value: tx.value, + startBlock: startBlock + }; + } + + _context23.next = 6; + return this._waitForTransaction(tx.hash, confirms, timeout, replacement); + + case 6: + receipt = _context23.sent; + + if (!(receipt == null && confirms === 0)) { + _context23.next = 9; + break; + } + + return _context23.abrupt("return", null); + + case 9: + // No longer pending, allow the polling loop to garbage collect this + this._emitted["t:" + tx.hash] = receipt.blockNumber; + + if (receipt.status === 0) { + logger.throwError("transaction failed", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION, { + transactionHash: tx.hash, + transaction: tx, + receipt: receipt + }); + } + + return _context23.abrupt("return", receipt); + + case 12: + case "end": + return _context23.stop(); + } + } + }, _callee23, this); + })); + }; + + return result; + } + }, { + key: "sendTransaction", + value: function sendTransaction(signedTransaction) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee24() { + var hexTx, tx, blockNumber, hash; + return regeneratorRuntime.wrap(function _callee24$(_context24) { + while (1) { + switch (_context24.prev = _context24.next) { + case 0: + _context24.next = 2; + return this.getNetwork(); + + case 2: + _context24.next = 4; + return Promise.resolve(signedTransaction).then(function (t) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexlify"])(t); + }); + + case 4: + hexTx = _context24.sent; + tx = this.formatter.transaction(signedTransaction); + + if (tx.confirmations == null) { + tx.confirmations = 0; + } + + _context24.next = 9; + return this._getInternalBlockNumber(100 + 2 * this.pollingInterval); + + case 9: + blockNumber = _context24.sent; + _context24.prev = 10; + _context24.next = 13; + return this.perform("sendTransaction", { + signedTransaction: hexTx + }); + + case 13: + hash = _context24.sent; + return _context24.abrupt("return", this._wrapTransaction(tx, hash, blockNumber)); + + case 17: + _context24.prev = 17; + _context24.t0 = _context24["catch"](10); + _context24.t0.transaction = tx; + _context24.t0.transactionHash = tx.hash; + throw _context24.t0; + + case 22: + case "end": + return _context24.stop(); + } + } + }, _callee24, this, [[10, 17]]); + })); + } + }, { + key: "_getTransactionRequest", + value: function _getTransactionRequest(transaction) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee25() { + var _this13 = this; + + var values, tx; + return regeneratorRuntime.wrap(function _callee25$(_context25) { + while (1) { + switch (_context25.prev = _context25.next) { + case 0: + _context25.next = 2; + return transaction; + + case 2: + values = _context25.sent; + tx = {}; + ["from", "to"].forEach(function (key) { + if (values[key] == null) { + return; + } + + tx[key] = Promise.resolve(values[key]).then(function (v) { + return v ? _this13._getAddress(v) : null; + }); + }); + ["gasLimit", "gasPrice", "maxFeePerGas", "maxPriorityFeePerGas", "value"].forEach(function (key) { + if (values[key] == null) { + return; + } + + tx[key] = Promise.resolve(values[key]).then(function (v) { + return v ? _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(v) : null; + }); + }); + ["type"].forEach(function (key) { + if (values[key] == null) { + return; + } + + tx[key] = Promise.resolve(values[key]).then(function (v) { + return v != null ? v : null; + }); + }); + + if (values.accessList) { + tx.accessList = this.formatter.accessList(values.accessList); + } + + ["data"].forEach(function (key) { + if (values[key] == null) { + return; + } + + tx[key] = Promise.resolve(values[key]).then(function (v) { + return v ? Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexlify"])(v) : null; + }); + }); + _context25.t0 = this.formatter; + _context25.next = 12; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])(tx); + + case 12: + _context25.t1 = _context25.sent; + return _context25.abrupt("return", _context25.t0.transactionRequest.call(_context25.t0, _context25.t1)); + + case 14: + case "end": + return _context25.stop(); + } + } + }, _callee25, this); + })); + } + }, { + key: "_getFilter", + value: function _getFilter(filter) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee26() { + var _this14 = this; + + var result; + return regeneratorRuntime.wrap(function _callee26$(_context26) { + while (1) { + switch (_context26.prev = _context26.next) { + case 0: + _context26.next = 2; + return filter; + + case 2: + filter = _context26.sent; + result = {}; + + if (filter.address != null) { + result.address = this._getAddress(filter.address); + } + + ["blockHash", "topics"].forEach(function (key) { + if (filter[key] == null) { + return; + } + + result[key] = filter[key]; + }); + ["fromBlock", "toBlock"].forEach(function (key) { + if (filter[key] == null) { + return; + } + + result[key] = _this14._getBlockTag(filter[key]); + }); + _context26.t0 = this.formatter; + _context26.next = 10; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])(result); + + case 10: + _context26.t1 = _context26.sent; + return _context26.abrupt("return", _context26.t0.filter.call(_context26.t0, _context26.t1)); + + case 12: + case "end": + return _context26.stop(); + } + } + }, _callee26, this); + })); + } + }, { + key: "_call", + value: function _call(transaction, blockTag, attempt) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee27() { + var txSender, result, data, sender, urls, urlsOffset, urlsLength, urlsData, u, url, calldata, callbackSelector, extraData, ccipResult, tx; + return regeneratorRuntime.wrap(function _callee27$(_context27) { + while (1) { + switch (_context27.prev = _context27.next) { + case 0: + if (attempt >= MAX_CCIP_REDIRECTS) { + logger.throwError("CCIP read exceeded maximum redirections", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + redirects: attempt, + transaction: transaction + }); + } + + txSender = transaction.to; + _context27.next = 4; + return this.perform("call", { + transaction: transaction, + blockTag: blockTag + }); + + case 4: + result = _context27.sent; + + if (!(attempt >= 0 && blockTag === "latest" && txSender != null && result.substring(0, 10) === "0x556f1830" && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataLength"])(result) % 32 === 4)) { + _context27.next = 31; + break; + } + + _context27.prev = 6; + data = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(result, 4); // Check the sender of the OffchainLookup matches the transaction + + sender = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(data, 0, 32); + + if (!_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(sender).eq(txSender)) { + logger.throwError("CCIP Read sender did not match", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION, { + name: "OffchainLookup", + signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", + transaction: transaction, + data: result + }); + } // Read the URLs from the response + + + urls = []; + urlsOffset = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(data, 32, 64)).toNumber(); + urlsLength = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(data, urlsOffset, urlsOffset + 32)).toNumber(); + urlsData = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(data, urlsOffset + 32); + + for (u = 0; u < urlsLength; u++) { + url = _parseString(urlsData, u * 32); + + if (url == null) { + logger.throwError("CCIP Read contained corrupt URL string", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION, { + name: "OffchainLookup", + signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", + transaction: transaction, + data: result + }); + } + + urls.push(url); + } // Get the CCIP calldata to forward + + + calldata = _parseBytes(data, 64); // Get the callbackSelector (bytes4) + + if (!_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(data, 100, 128)).isZero()) { + logger.throwError("CCIP Read callback selector included junk", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION, { + name: "OffchainLookup", + signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", + transaction: transaction, + data: result + }); + } + + callbackSelector = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexDataSlice"])(data, 96, 100); // Get the extra data to send back to the contract as context + + extraData = _parseBytes(data, 128); + _context27.next = 21; + return this.ccipReadFetch(transaction, calldata, urls); + + case 21: + ccipResult = _context27.sent; + + if (ccipResult == null) { + logger.throwError("CCIP Read disabled or provided no URLs", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION, { + name: "OffchainLookup", + signature: "OffchainLookup(address,string[],bytes,bytes4,bytes)", + transaction: transaction, + data: result + }); + } + + tx = { + to: txSender, + data: Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexConcat"])([callbackSelector, encodeBytes([ccipResult, extraData])]) + }; + return _context27.abrupt("return", this._call(tx, blockTag, attempt + 1)); + + case 27: + _context27.prev = 27; + _context27.t0 = _context27["catch"](6); + + if (!(_context27.t0.code === _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR)) { + _context27.next = 31; + break; + } + + throw _context27.t0; + + case 31: + _context27.prev = 31; + return _context27.abrupt("return", Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["hexlify"])(result)); + + case 35: + _context27.prev = 35; + _context27.t1 = _context27["catch"](31); + return _context27.abrupt("return", logger.throwError("bad result from backend", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + method: "call", + params: { + transaction: transaction, + blockTag: blockTag + }, + result: result, + error: _context27.t1 + })); + + case 38: + case "end": + return _context27.stop(); + } + } + }, _callee27, this, [[6, 27], [31, 35]]); + })); + } + }, { + key: "call", + value: function call(transaction, blockTag) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee28() { + var resolved; + return regeneratorRuntime.wrap(function _callee28$(_context28) { + while (1) { + switch (_context28.prev = _context28.next) { + case 0: + _context28.next = 2; + return this.getNetwork(); + + case 2: + _context28.next = 4; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])({ + transaction: this._getTransactionRequest(transaction), + blockTag: this._getBlockTag(blockTag), + ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled) + }); + + case 4: + resolved = _context28.sent; + return _context28.abrupt("return", this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1)); + + case 6: + case "end": + return _context28.stop(); + } + } + }, _callee28, this); + })); + } + }, { + key: "estimateGas", + value: function estimateGas(transaction) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee29() { + var params, result; + return regeneratorRuntime.wrap(function _callee29$(_context29) { + while (1) { + switch (_context29.prev = _context29.next) { + case 0: + _context29.next = 2; + return this.getNetwork(); + + case 2: + _context29.next = 4; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])({ + transaction: this._getTransactionRequest(transaction) + }); + + case 4: + params = _context29.sent; + _context29.next = 7; + return this.perform("estimateGas", params); + + case 7: + result = _context29.sent; + _context29.prev = 8; + return _context29.abrupt("return", _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_2__["BigNumber"].from(result)); + + case 12: + _context29.prev = 12; + _context29.t0 = _context29["catch"](8); + return _context29.abrupt("return", logger.throwError("bad result from backend", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.SERVER_ERROR, { + method: "estimateGas", + params: params, + result: result, + error: _context29.t0 + })); + + case 15: + case "end": + return _context29.stop(); + } + } + }, _callee29, this, [[8, 12]]); + })); + } + }, { + key: "_getAddress", + value: function _getAddress(addressOrName) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee30() { + var address; + return regeneratorRuntime.wrap(function _callee30$(_context30) { + while (1) { + switch (_context30.prev = _context30.next) { + case 0: + _context30.next = 2; + return addressOrName; + + case 2: + addressOrName = _context30.sent; + + if (typeof addressOrName !== "string") { + logger.throwArgumentError("invalid address or ENS name", "name", addressOrName); + } + + _context30.next = 6; + return this.resolveName(addressOrName); + + case 6: + address = _context30.sent; + + if (address == null) { + logger.throwError("ENS name not configured", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "resolveName(".concat(JSON.stringify(addressOrName), ")") + }); + } + + return _context30.abrupt("return", address); + + case 9: + case "end": + return _context30.stop(); + } + } + }, _callee30, this); + })); + } + }, { + key: "_getBlock", + value: function _getBlock(blockHashOrBlockTag, includeTransactions) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee32() { + var _this15 = this; + + var blockNumber, params; + return regeneratorRuntime.wrap(function _callee32$(_context32) { + while (1) { + switch (_context32.prev = _context32.next) { + case 0: + _context32.next = 2; + return this.getNetwork(); + + case 2: + _context32.next = 4; + return blockHashOrBlockTag; + + case 4: + blockHashOrBlockTag = _context32.sent; + // If blockTag is a number (not "latest", etc), this is the block number + blockNumber = -128; + params = { + includeTransactions: !!includeTransactions + }; + + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["isHexString"])(blockHashOrBlockTag, 32)) { + _context32.next = 11; + break; + } + + params.blockHash = blockHashOrBlockTag; + _context32.next = 21; + break; + + case 11: + _context32.prev = 11; + _context32.next = 14; + return this._getBlockTag(blockHashOrBlockTag); + + case 14: + params.blockTag = _context32.sent; + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["isHexString"])(params.blockTag)) { + blockNumber = parseInt(params.blockTag.substring(2), 16); + } + + _context32.next = 21; + break; + + case 18: + _context32.prev = 18; + _context32.t0 = _context32["catch"](11); + logger.throwArgumentError("invalid block hash or block tag", "blockHashOrBlockTag", blockHashOrBlockTag); + + case 21: + return _context32.abrupt("return", Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_10__["poll"])(function () { + return __awaiter(_this15, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee31() { + var _this16 = this; + + var block, _blockNumber, i, tx, confirmations, blockWithTxs; + + return regeneratorRuntime.wrap(function _callee31$(_context31) { + while (1) { + switch (_context31.prev = _context31.next) { + case 0: + _context31.next = 2; + return this.perform("getBlock", params); + + case 2: + block = _context31.sent; + + if (!(block == null)) { + _context31.next = 11; + break; + } + + if (!(params.blockHash != null)) { + _context31.next = 7; + break; + } + + if (!(this._emitted["b:" + params.blockHash] == null)) { + _context31.next = 7; + break; + } + + return _context31.abrupt("return", null); + + case 7: + if (!(params.blockTag != null)) { + _context31.next = 10; + break; + } + + if (!(blockNumber > this._emitted.block)) { + _context31.next = 10; + break; + } + + return _context31.abrupt("return", null); + + case 10: + return _context31.abrupt("return", undefined); + + case 11: + if (!includeTransactions) { + _context31.next = 34; + break; + } + + _blockNumber = null; + i = 0; + + case 14: + if (!(i < block.transactions.length)) { + _context31.next = 31; + break; + } + + tx = block.transactions[i]; + + if (!(tx.blockNumber == null)) { + _context31.next = 20; + break; + } + + tx.confirmations = 0; + _context31.next = 28; + break; + + case 20: + if (!(tx.confirmations == null)) { + _context31.next = 28; + break; + } + + if (!(_blockNumber == null)) { + _context31.next = 25; + break; + } + + _context31.next = 24; + return this._getInternalBlockNumber(100 + 2 * this.pollingInterval); + + case 24: + _blockNumber = _context31.sent; + + case 25: + // Add the confirmations using the fast block number (pessimistic) + confirmations = _blockNumber - tx.blockNumber + 1; + + if (confirmations <= 0) { + confirmations = 1; + } + + tx.confirmations = confirmations; + + case 28: + i++; + _context31.next = 14; + break; + + case 31: + blockWithTxs = this.formatter.blockWithTransactions(block); + blockWithTxs.transactions = blockWithTxs.transactions.map(function (tx) { + return _this16._wrapTransaction(tx); + }); + return _context31.abrupt("return", blockWithTxs); + + case 34: + return _context31.abrupt("return", this.formatter.block(block)); + + case 35: + case "end": + return _context31.stop(); + } + } + }, _callee31, this); + })); + }, { + oncePoll: this + })); + + case 22: + case "end": + return _context32.stop(); + } + } + }, _callee32, this, [[11, 18]]); + })); + } + }, { + key: "getBlock", + value: function getBlock(blockHashOrBlockTag) { + return this._getBlock(blockHashOrBlockTag, false); + } + }, { + key: "getBlockWithTransactions", + value: function getBlockWithTransactions(blockHashOrBlockTag) { + return this._getBlock(blockHashOrBlockTag, true); + } + }, { + key: "getTransaction", + value: function getTransaction(transactionHash) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee34() { + var _this17 = this; + + var params; + return regeneratorRuntime.wrap(function _callee34$(_context34) { + while (1) { + switch (_context34.prev = _context34.next) { + case 0: + _context34.next = 2; + return this.getNetwork(); + + case 2: + _context34.next = 4; + return transactionHash; + + case 4: + transactionHash = _context34.sent; + params = { + transactionHash: this.formatter.hash(transactionHash, true) + }; + return _context34.abrupt("return", Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_10__["poll"])(function () { + return __awaiter(_this17, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee33() { + var result, tx, blockNumber, confirmations; + return regeneratorRuntime.wrap(function _callee33$(_context33) { + while (1) { + switch (_context33.prev = _context33.next) { + case 0: + _context33.next = 2; + return this.perform("getTransaction", params); + + case 2: + result = _context33.sent; + + if (!(result == null)) { + _context33.next = 7; + break; + } + + if (!(this._emitted["t:" + transactionHash] == null)) { + _context33.next = 6; + break; + } + + return _context33.abrupt("return", null); + + case 6: + return _context33.abrupt("return", undefined); + + case 7: + tx = this.formatter.transactionResponse(result); + + if (!(tx.blockNumber == null)) { + _context33.next = 12; + break; + } + + tx.confirmations = 0; + _context33.next = 19; + break; + + case 12: + if (!(tx.confirmations == null)) { + _context33.next = 19; + break; + } + + _context33.next = 15; + return this._getInternalBlockNumber(100 + 2 * this.pollingInterval); + + case 15: + blockNumber = _context33.sent; + // Add the confirmations using the fast block number (pessimistic) + confirmations = blockNumber - tx.blockNumber + 1; + + if (confirmations <= 0) { + confirmations = 1; + } + + tx.confirmations = confirmations; + + case 19: + return _context33.abrupt("return", this._wrapTransaction(tx)); + + case 20: + case "end": + return _context33.stop(); + } + } + }, _callee33, this); + })); + }, { + oncePoll: this + })); + + case 7: + case "end": + return _context34.stop(); + } + } + }, _callee34, this); + })); + } + }, { + key: "getTransactionReceipt", + value: function getTransactionReceipt(transactionHash) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee36() { + var _this18 = this; + + var params; + return regeneratorRuntime.wrap(function _callee36$(_context36) { + while (1) { + switch (_context36.prev = _context36.next) { + case 0: + _context36.next = 2; + return this.getNetwork(); + + case 2: + _context36.next = 4; + return transactionHash; + + case 4: + transactionHash = _context36.sent; + params = { + transactionHash: this.formatter.hash(transactionHash, true) + }; + return _context36.abrupt("return", Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_10__["poll"])(function () { + return __awaiter(_this18, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee35() { + var result, receipt, blockNumber, confirmations; + return regeneratorRuntime.wrap(function _callee35$(_context35) { + while (1) { + switch (_context35.prev = _context35.next) { + case 0: + _context35.next = 2; + return this.perform("getTransactionReceipt", params); + + case 2: + result = _context35.sent; + + if (!(result == null)) { + _context35.next = 7; + break; + } + + if (!(this._emitted["t:" + transactionHash] == null)) { + _context35.next = 6; + break; + } + + return _context35.abrupt("return", null); + + case 6: + return _context35.abrupt("return", undefined); + + case 7: + if (!(result.blockHash == null)) { + _context35.next = 9; + break; + } + + return _context35.abrupt("return", undefined); + + case 9: + receipt = this.formatter.receipt(result); + + if (!(receipt.blockNumber == null)) { + _context35.next = 14; + break; + } + + receipt.confirmations = 0; + _context35.next = 21; + break; + + case 14: + if (!(receipt.confirmations == null)) { + _context35.next = 21; + break; + } + + _context35.next = 17; + return this._getInternalBlockNumber(100 + 2 * this.pollingInterval); + + case 17: + blockNumber = _context35.sent; + // Add the confirmations using the fast block number (pessimistic) + confirmations = blockNumber - receipt.blockNumber + 1; + + if (confirmations <= 0) { + confirmations = 1; + } + + receipt.confirmations = confirmations; + + case 21: + return _context35.abrupt("return", receipt); + + case 22: + case "end": + return _context35.stop(); + } + } + }, _callee35, this); + })); + }, { + oncePoll: this + })); + + case 7: + case "end": + return _context36.stop(); + } + } + }, _callee36, this); + })); + } + }, { + key: "getLogs", + value: function getLogs(filter) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee37() { + var params, logs; + return regeneratorRuntime.wrap(function _callee37$(_context37) { + while (1) { + switch (_context37.prev = _context37.next) { + case 0: + _context37.next = 2; + return this.getNetwork(); + + case 2: + _context37.next = 4; + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_7__["resolveProperties"])({ + filter: this._getFilter(filter) + }); + + case 4: + params = _context37.sent; + _context37.next = 7; + return this.perform("getLogs", params); + + case 7: + logs = _context37.sent; + logs.forEach(function (log) { + if (log.removed == null) { + log.removed = false; + } + }); + return _context37.abrupt("return", _formatter__WEBPACK_IMPORTED_MODULE_14__["Formatter"].arrayOf(this.formatter.filterLog.bind(this.formatter))(logs)); + + case 10: + case "end": + return _context37.stop(); + } + } + }, _callee37, this); + })); + } + }, { + key: "getEtherPrice", + value: function getEtherPrice() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee38() { + return regeneratorRuntime.wrap(function _callee38$(_context38) { + while (1) { + switch (_context38.prev = _context38.next) { + case 0: + _context38.next = 2; + return this.getNetwork(); + + case 2: + return _context38.abrupt("return", this.perform("getEtherPrice", {})); + + case 3: + case "end": + return _context38.stop(); + } + } + }, _callee38, this); + })); + } + }, { + key: "_getBlockTag", + value: function _getBlockTag(blockTag) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee39() { + var blockNumber; + return regeneratorRuntime.wrap(function _callee39$(_context39) { + while (1) { + switch (_context39.prev = _context39.next) { + case 0: + _context39.next = 2; + return blockTag; + + case 2: + blockTag = _context39.sent; + + if (!(typeof blockTag === "number" && blockTag < 0)) { + _context39.next = 11; + break; + } + + if (blockTag % 1) { + logger.throwArgumentError("invalid BlockTag", "blockTag", blockTag); + } + + _context39.next = 7; + return this._getInternalBlockNumber(100 + 2 * this.pollingInterval); + + case 7: + blockNumber = _context39.sent; + blockNumber += blockTag; + + if (blockNumber < 0) { + blockNumber = 0; + } + + return _context39.abrupt("return", this.formatter.blockTag(blockNumber)); + + case 11: + return _context39.abrupt("return", this.formatter.blockTag(blockTag)); + + case 12: + case "end": + return _context39.stop(); + } + } + }, _callee39, this); + })); + } + }, { + key: "getResolver", + value: function getResolver(name) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee40() { + var currentName, addr, resolver; + return regeneratorRuntime.wrap(function _callee40$(_context40) { + while (1) { + switch (_context40.prev = _context40.next) { + case 0: + currentName = name; + + case 1: + if (false) {} + + if (!(currentName === "" || currentName === ".")) { + _context40.next = 4; + break; + } + + return _context40.abrupt("return", null); + + case 4: + if (!(name !== "eth" && currentName === "eth")) { + _context40.next = 6; + break; + } + + return _context40.abrupt("return", null); + + case 6: + _context40.next = 8; + return this._getResolver(currentName, "getResolver"); + + case 8: + addr = _context40.sent; + + if (!(addr != null)) { + _context40.next = 19; + break; + } + + resolver = new Resolver(this, addr, name); // Legacy resolver found, using EIP-2544 so it isn't safe to use + + _context40.t0 = currentName !== name; + + if (!_context40.t0) { + _context40.next = 16; + break; + } + + _context40.next = 15; + return resolver.supportsWildcard(); + + case 15: + _context40.t0 = !_context40.sent; + + case 16: + if (!_context40.t0) { + _context40.next = 18; + break; + } + + return _context40.abrupt("return", null); + + case 18: + return _context40.abrupt("return", resolver); + + case 19: + // Get the parent node + currentName = currentName.split(".").slice(1).join("."); + _context40.next = 1; + break; + + case 22: + case "end": + return _context40.stop(); + } + } + }, _callee40, this); + })); + } + }, { + key: "_getResolver", + value: function _getResolver(name, operation) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee41() { + var network, addrData; + return regeneratorRuntime.wrap(function _callee41$(_context41) { + while (1) { + switch (_context41.prev = _context41.next) { + case 0: + if (operation == null) { + operation = "ENS"; + } + + _context41.next = 3; + return this.getNetwork(); + + case 3: + network = _context41.sent; + + // No ENS... + if (!network.ensAddress) { + logger.throwError("network does not support ENS", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: operation, + network: network.name + }); + } + + _context41.prev = 5; + _context41.next = 8; + return this.call({ + to: network.ensAddress, + data: "0x0178b8bf" + Object(_ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__["namehash"])(name).substring(2) + }); + + case 8: + addrData = _context41.sent; + return _context41.abrupt("return", this.formatter.callAddress(addrData)); + + case 12: + _context41.prev = 12; + _context41.t0 = _context41["catch"](5); + + case 14: + return _context41.abrupt("return", null); + + case 15: + case "end": + return _context41.stop(); + } + } + }, _callee41, this, [[5, 12]]); + })); + } + }, { + key: "resolveName", + value: function resolveName(name) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee42() { + var resolver; + return regeneratorRuntime.wrap(function _callee42$(_context42) { + while (1) { + switch (_context42.prev = _context42.next) { + case 0: + _context42.next = 2; + return name; + + case 2: + name = _context42.sent; + _context42.prev = 3; + return _context42.abrupt("return", Promise.resolve(this.formatter.address(name))); + + case 7: + _context42.prev = 7; + _context42.t0 = _context42["catch"](3); + + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["isHexString"])(name)) { + _context42.next = 11; + break; + } + + throw _context42.t0; + + case 11: + if (typeof name !== "string") { + logger.throwArgumentError("invalid ENS name", "name", name); + } // Get the addr from the resovler + + + _context42.next = 14; + return this.getResolver(name); + + case 14: + resolver = _context42.sent; + + if (resolver) { + _context42.next = 17; + break; + } + + return _context42.abrupt("return", null); + + case 17: + _context42.next = 19; + return resolver.getAddress(); + + case 19: + return _context42.abrupt("return", _context42.sent); + + case 20: + case "end": + return _context42.stop(); + } + } + }, _callee42, this, [[3, 7]]); + })); + } + }, { + key: "lookupAddress", + value: function lookupAddress(address) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee43() { + var node, resolverAddr, name, addr; + return regeneratorRuntime.wrap(function _callee43$(_context43) { + while (1) { + switch (_context43.prev = _context43.next) { + case 0: + _context43.next = 2; + return address; + + case 2: + address = _context43.sent; + address = this.formatter.address(address); + node = address.substring(2).toLowerCase() + ".addr.reverse"; + _context43.next = 7; + return this._getResolver(node, "lookupAddress"); + + case 7: + resolverAddr = _context43.sent; + + if (!(resolverAddr == null)) { + _context43.next = 10; + break; + } + + return _context43.abrupt("return", null); + + case 10: + _context43.t0 = _parseString; + _context43.next = 13; + return this.call({ + to: resolverAddr, + data: "0x691f3431" + Object(_ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__["namehash"])(node).substring(2) + }); + + case 13: + _context43.t1 = _context43.sent; + name = (0, _context43.t0)(_context43.t1, 0); + _context43.next = 17; + return this.resolveName(name); + + case 17: + addr = _context43.sent; + + if (!(addr != address)) { + _context43.next = 20; + break; + } + + return _context43.abrupt("return", null); + + case 20: + return _context43.abrupt("return", name); + + case 21: + case "end": + return _context43.stop(); + } + } + }, _callee43, this); + })); + } + }, { + key: "getAvatar", + value: function getAvatar(nameOrAddress) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee44() { + var resolver, address, node, resolverAddress, _avatar, name, avatar; + + return regeneratorRuntime.wrap(function _callee44$(_context44) { + while (1) { + switch (_context44.prev = _context44.next) { + case 0: + resolver = null; + + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_3__["isHexString"])(nameOrAddress)) { + _context44.next = 40; + break; + } + + // Address; reverse lookup + address = this.formatter.address(nameOrAddress); + node = address.substring(2).toLowerCase() + ".addr.reverse"; + _context44.next = 6; + return this._getResolver(node, "getAvatar"); + + case 6: + resolverAddress = _context44.sent; + + if (resolverAddress) { + _context44.next = 9; + break; + } + + return _context44.abrupt("return", null); + + case 9: + // Try resolving the avatar against the addr.reverse resolver + resolver = new Resolver(this, resolverAddress, node); + _context44.prev = 10; + _context44.next = 13; + return resolver.getAvatar(); + + case 13: + _avatar = _context44.sent; + + if (!_avatar) { + _context44.next = 16; + break; + } + + return _context44.abrupt("return", _avatar.url); + + case 16: + _context44.next = 22; + break; + + case 18: + _context44.prev = 18; + _context44.t0 = _context44["catch"](10); + + if (!(_context44.t0.code !== _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION)) { + _context44.next = 22; + break; + } + + throw _context44.t0; + + case 22: + _context44.prev = 22; + _context44.t1 = _parseString; + _context44.next = 26; + return this.call({ + to: resolverAddress, + data: "0x691f3431" + Object(_ethersproject_hash__WEBPACK_IMPORTED_MODULE_5__["namehash"])(node).substring(2) + }); + + case 26: + _context44.t2 = _context44.sent; + name = (0, _context44.t1)(_context44.t2, 0); + _context44.next = 30; + return this.getResolver(name); + + case 30: + resolver = _context44.sent; + _context44.next = 38; + break; + + case 33: + _context44.prev = 33; + _context44.t3 = _context44["catch"](22); + + if (!(_context44.t3.code !== _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.CALL_EXCEPTION)) { + _context44.next = 37; + break; + } + + throw _context44.t3; + + case 37: + return _context44.abrupt("return", null); + + case 38: + _context44.next = 45; + break; + + case 40: + _context44.next = 42; + return this.getResolver(nameOrAddress); + + case 42: + resolver = _context44.sent; + + if (resolver) { + _context44.next = 45; + break; + } + + return _context44.abrupt("return", null); + + case 45: + _context44.next = 47; + return resolver.getAvatar(); + + case 47: + avatar = _context44.sent; + + if (!(avatar == null)) { + _context44.next = 50; + break; + } + + return _context44.abrupt("return", null); + + case 50: + return _context44.abrupt("return", avatar.url); + + case 51: + case "end": + return _context44.stop(); + } + } + }, _callee44, this, [[10, 18], [22, 33]]); + })); + } + }, { + key: "perform", + value: function perform(method, params) { + return logger.throwError(method + " not implemented", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_12__["Logger"].errors.NOT_IMPLEMENTED, { + operation: method + }); + } + }, { + key: "_startEvent", + value: function _startEvent(event) { + this.polling = this._events.filter(function (e) { + return e.pollable(); + }).length > 0; + } + }, { + key: "_stopEvent", + value: function _stopEvent(event) { + this.polling = this._events.filter(function (e) { + return e.pollable(); + }).length > 0; + } + }, { + key: "_addEventListener", + value: function _addEventListener(eventName, listener, once) { + var event = new Event(getEventTag(eventName), listener, once); + + this._events.push(event); + + this._startEvent(event); + + return this; + } + }, { + key: "on", + value: function on(eventName, listener) { + return this._addEventListener(eventName, listener, false); + } + }, { + key: "once", + value: function once(eventName, listener) { + return this._addEventListener(eventName, listener, true); + } + }, { + key: "emit", + value: function emit(eventName) { + var _this19 = this; + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + var result = false; + var stopped = []; + var eventTag = getEventTag(eventName); + this._events = this._events.filter(function (event) { + if (event.tag !== eventTag) { + return true; + } + + setTimeout(function () { + event.listener.apply(_this19, args); + }, 0); + result = true; + + if (event.once) { + stopped.push(event); + return false; + } + + return true; + }); + stopped.forEach(function (event) { + _this19._stopEvent(event); + }); + return result; + } + }, { + key: "listenerCount", + value: function listenerCount(eventName) { + if (!eventName) { + return this._events.length; + } + + var eventTag = getEventTag(eventName); + return this._events.filter(function (event) { + return event.tag === eventTag; + }).length; + } + }, { + key: "listeners", + value: function listeners(eventName) { + if (eventName == null) { + return this._events.map(function (event) { + return event.listener; + }); + } + + var eventTag = getEventTag(eventName); + return this._events.filter(function (event) { + return event.tag === eventTag; + }).map(function (event) { + return event.listener; + }); + } + }, { + key: "off", + value: function off(eventName, listener) { + var _this20 = this; + + if (listener == null) { + return this.removeAllListeners(eventName); + } + + var stopped = []; + var found = false; + var eventTag = getEventTag(eventName); + this._events = this._events.filter(function (event) { + if (event.tag !== eventTag || event.listener != listener) { + return true; + } + + if (found) { + return true; + } + + found = true; + stopped.push(event); + return false; + }); + stopped.forEach(function (event) { + _this20._stopEvent(event); + }); + return this; + } + }, { + key: "removeAllListeners", + value: function removeAllListeners(eventName) { + var _this21 = this; + + var stopped = []; + + if (eventName == null) { + stopped = this._events; + this._events = []; + } else { + var eventTag = getEventTag(eventName); + this._events = this._events.filter(function (event) { + if (event.tag !== eventTag) { + return true; + } + + stopped.push(event); + return false; + }); + } + + stopped.forEach(function (event) { + _this21._stopEvent(event); + }); + return this; + } + }], [{ + key: "getFormatter", + value: function getFormatter() { + if (defaultFormatter == null) { + defaultFormatter = new _formatter__WEBPACK_IMPORTED_MODULE_14__["Formatter"](); + } + + return defaultFormatter; + } // @TODO: Remove this and just use getNetwork + + }, { + key: "getNetwork", + value: function getNetwork(network) { + return Object(_ethersproject_networks__WEBPACK_IMPORTED_MODULE_6__["getNetwork"])(network == null ? "homestead" : network); + } + }]); + + return BaseProvider; +}(_ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__["Provider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/cloudflare-provider.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/cloudflare-provider.js ***! + \**************************************************************************************************/ +/*! exports provided: CloudflareProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CloudflareProvider", function() { return CloudflareProvider; }); +/* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); +var CloudflareProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) { + _inherits(CloudflareProvider, _UrlJsonRpcProvider); + + var _super2 = _createSuper(CloudflareProvider); + + function CloudflareProvider() { + _classCallCheck(this, CloudflareProvider); + + return _super2.apply(this, arguments); + } + + _createClass(CloudflareProvider, [{ + key: "perform", + value: function perform(method, params) { + var _this = this; + + var _super = Object.create(null, { + perform: { + get: function get() { + return _get(_getPrototypeOf(CloudflareProvider.prototype), "perform", _this); + } + } + }); + + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var block; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!(method === "getBlockNumber")) { + _context.next = 5; + break; + } + + _context.next = 3; + return _super.perform.call(this, "getBlock", { + blockTag: "latest" + }); + + case 3: + block = _context.sent; + return _context.abrupt("return", block.number); + + case 5: + return _context.abrupt("return", _super.perform.call(this, method, params)); + + case 6: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + } + }], [{ + key: "getApiKey", + value: function getApiKey(apiKey) { + if (apiKey != null) { + logger.throwArgumentError("apiKey not supported for cloudflare", "apiKey", apiKey); + } + + return null; + } + }, { + key: "getUrl", + value: function getUrl(network, apiKey) { + var host = null; + + switch (network.name) { + case "homestead": + host = "https://cloudflare-eth.com/"; + break; + + default: + logger.throwArgumentError("unsupported network", "network", arguments[0]); + } + + return host; + } + }]); + + return CloudflareProvider; +}(_url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_0__["UrlJsonRpcProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/etherscan-provider.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/etherscan-provider.js ***! + \*************************************************************************************************/ +/*! exports provided: EtherscanProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EtherscanProvider", function() { return EtherscanProvider; }); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_transactions__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/transactions */ "./node_modules/@ethersproject/transactions/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./formatter */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/formatter.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +/* harmony import */ var _base_provider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./base-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/base-provider.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"](_version__WEBPACK_IMPORTED_MODULE_6__["version"]); + // The transaction has already been sanitized by the calls in Provider + +function getTransactionPostData(transaction) { + var result = {}; + + for (var key in transaction) { + if (transaction[key] == null) { + continue; + } + + var value = transaction[key]; + + if (key === "type" && value === 0) { + continue; + } // Quantity-types require no leading zero, unless 0 + + + if ({ + type: true, + gasLimit: true, + gasPrice: true, + maxFeePerGs: true, + maxPriorityFeePerGas: true, + nonce: true, + value: true + }[key]) { + value = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexValue"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexlify"])(value)); + } else if (key === "accessList") { + value = "[" + Object(_ethersproject_transactions__WEBPACK_IMPORTED_MODULE_2__["accessListify"])(value).map(function (set) { + return "{address:\"".concat(set.address, "\",storageKeys:[\"").concat(set.storageKeys.join('","'), "\"]}"); + }).join(",") + "]"; + } else { + value = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["hexlify"])(value); + } + + result[key] = value; + } + + return result; +} + +function getResult(result) { + // getLogs, getHistory have weird success responses + if (result.status == 0 && (result.message === "No records found" || result.message === "No transactions found")) { + return result.result; + } + + if (result.status != 1 || result.message != "OK") { + var error = new Error("invalid response"); + error.result = JSON.stringify(result); + + if ((result.result || "").toLowerCase().indexOf("rate limit") >= 0) { + error.throttleRetry = true; + } + + throw error; + } + + return result.result; +} + +function getJsonResult(result) { + // This response indicates we are being throttled + if (result && result.status == 0 && result.message == "NOTOK" && (result.result || "").toLowerCase().indexOf("rate limit") >= 0) { + var error = new Error("throttled response"); + error.result = JSON.stringify(result); + error.throttleRetry = true; + throw error; + } + + if (result.jsonrpc != "2.0") { + // @TODO: not any + var _error = new Error("invalid response"); + + _error.result = JSON.stringify(result); + throw _error; + } + + if (result.error) { + // @TODO: not any + var _error2 = new Error(result.error.message || "unknown error"); + + if (result.error.code) { + _error2.code = result.error.code; + } + + if (result.error.data) { + _error2.data = result.error.data; + } + + throw _error2; + } + + return result.result; +} // The blockTag was normalized as a string by the Provider pre-perform operations + + +function checkLogTag(blockTag) { + if (blockTag === "pending") { + throw new Error("pending not supported"); + } + + if (blockTag === "latest") { + return blockTag; + } + + return parseInt(blockTag.substring(2), 16); +} + +var defaultApiKey = "9D13ZE7XSBTJ94N9BNJ2MA33VMAY2YPIRB"; + +function checkError(method, error, transaction) { + // Undo the "convenience" some nodes are attempting to prevent backwards + // incompatibility; maybe for v6 consider forwarding reverts as errors + if (method === "call" && error.code === _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"].errors.SERVER_ERROR) { + var e = error.error; // Etherscan keeps changing their string + + if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) { + // Etherscan prefixes the data like "Reverted 0x1234" + var data = e.data; + + if (data) { + data = "0x" + data.replace(/^.*0x/i, ""); + } + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_0__["isHexString"])(data)) { + return data; + } + + logger.throwError("missing revert data in call exception", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"].errors.CALL_EXCEPTION, { + error: error, + data: "0x" + }); + } + } // Get the message from any nested error structure + + + var message = error.message; + + if (error.code === _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"].errors.SERVER_ERROR) { + if (error.error && typeof error.error.message === "string") { + message = error.error.message; + } else if (typeof error.body === "string") { + message = error.body; + } else if (typeof error.responseText === "string") { + message = error.responseText; + } + } + + message = (message || "").toLowerCase(); // "Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0" + + if (message.match(/insufficient funds/)) { + logger.throwError("insufficient funds for intrinsic transaction cost", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"].errors.INSUFFICIENT_FUNDS, { + error: error, + method: method, + transaction: transaction + }); + } // "Transaction with the same hash was already imported." + + + if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) { + logger.throwError("nonce has already been used", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"].errors.NONCE_EXPIRED, { + error: error, + method: method, + transaction: transaction + }); + } // "Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce." + + + if (message.match(/another transaction with same nonce/)) { + logger.throwError("replacement fee too low", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"].errors.REPLACEMENT_UNDERPRICED, { + error: error, + method: method, + transaction: transaction + }); + } + + if (message.match(/execution failed due to an exception|execution reverted/)) { + logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"].errors.UNPREDICTABLE_GAS_LIMIT, { + error: error, + method: method, + transaction: transaction + }); + } + + throw error; +} + +var EtherscanProvider = /*#__PURE__*/function (_BaseProvider) { + _inherits(EtherscanProvider, _BaseProvider); + + var _super2 = _createSuper(EtherscanProvider); + + function EtherscanProvider(network, apiKey) { + var _this; + + _classCallCheck(this, EtherscanProvider); + + logger.checkNew(this instanceof EtherscanProvider ? this.constructor : void 0, EtherscanProvider); + _this = _super2.call(this, network); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(_assertThisInitialized(_this), "baseUrl", _this.getBaseUrl()); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(_assertThisInitialized(_this), "apiKey", apiKey || defaultApiKey); + return _this; + } + + _createClass(EtherscanProvider, [{ + key: "getBaseUrl", + value: function getBaseUrl() { + switch (this.network ? this.network.name : "invalid") { + case "homestead": + return "https:/\/api.etherscan.io"; + + case "ropsten": + return "https:/\/api-ropsten.etherscan.io"; + + case "rinkeby": + return "https:/\/api-rinkeby.etherscan.io"; + + case "kovan": + return "https:/\/api-kovan.etherscan.io"; + + case "goerli": + return "https:/\/api-goerli.etherscan.io"; + + default: + } + + return logger.throwArgumentError("unsupported network", "network", name); + } + }, { + key: "getUrl", + value: function getUrl(module, params) { + var query = Object.keys(params).reduce(function (accum, key) { + var value = params[key]; + + if (value != null) { + accum += "&".concat(key, "=").concat(value); + } + + return accum; + }, ""); + var apiKey = this.apiKey ? "&apikey=".concat(this.apiKey) : ""; + return "".concat(this.baseUrl, "/api?module=").concat(module).concat(query).concat(apiKey); + } + }, { + key: "getPostUrl", + value: function getPostUrl() { + return "".concat(this.baseUrl, "/api"); + } + }, { + key: "getPostData", + value: function getPostData(module, params) { + params.module = module; + params.apikey = this.apiKey; + return params; + } + }, { + key: "fetch", + value: function fetch(module, params, post) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var _this2 = this; + + var url, payload, procFunc, connection, payloadStr, result; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + url = post ? this.getPostUrl() : this.getUrl(module, params); + payload = post ? this.getPostData(module, params) : null; + procFunc = module === "proxy" ? getJsonResult : getResult; + this.emit("debug", { + action: "request", + request: url, + provider: this + }); + connection = { + url: url, + throttleSlotInterval: 1000, + throttleCallback: function throttleCallback(attempt, url) { + if (_this2.isCommunityResource()) { + Object(_formatter__WEBPACK_IMPORTED_MODULE_4__["showThrottleMessage"])(); + } + + return Promise.resolve(true); + } + }; + payloadStr = null; + + if (payload) { + connection.headers = { + "content-type": "application/x-www-form-urlencoded; charset=UTF-8" + }; + payloadStr = Object.keys(payload).map(function (key) { + return "".concat(key, "=").concat(payload[key]); + }).join("&"); + } + + _context.next = 9; + return Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_3__["fetchJson"])(connection, payloadStr, procFunc || getJsonResult); + + case 9: + result = _context.sent; + this.emit("debug", { + action: "response", + request: url, + response: Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["deepCopy"])(result), + provider: this + }); + return _context.abrupt("return", result); + + case 12: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + } + }, { + key: "detectNetwork", + value: function detectNetwork() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + return _context2.abrupt("return", this.network); + + case 1: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + } + }, { + key: "perform", + value: function perform(method, params) { + var _this3 = this; + + var _super = Object.create(null, { + perform: { + get: function get() { + return _get(_getPrototypeOf(EtherscanProvider.prototype), "perform", _this3); + } + } + }); + + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var postData, _postData, args, topic0, logs, blocks, i, log, block; + + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.t0 = method; + _context3.next = _context3.t0 === "getBlockNumber" ? 3 : _context3.t0 === "getGasPrice" ? 4 : _context3.t0 === "getBalance" ? 5 : _context3.t0 === "getTransactionCount" ? 6 : _context3.t0 === "getCode" ? 7 : _context3.t0 === "getStorageAt" ? 8 : _context3.t0 === "sendTransaction" ? 9 : _context3.t0 === "getBlock" ? 10 : _context3.t0 === "getTransaction" ? 13 : _context3.t0 === "getTransactionReceipt" ? 14 : _context3.t0 === "call" ? 15 : _context3.t0 === "estimateGas" ? 29 : _context3.t0 === "getLogs" ? 41 : _context3.t0 === "getEtherPrice" ? 65 : 72; + break; + + case 3: + return _context3.abrupt("return", this.fetch("proxy", { + action: "eth_blockNumber" + })); + + case 4: + return _context3.abrupt("return", this.fetch("proxy", { + action: "eth_gasPrice" + })); + + case 5: + return _context3.abrupt("return", this.fetch("account", { + action: "balance", + address: params.address, + tag: params.blockTag + })); + + case 6: + return _context3.abrupt("return", this.fetch("proxy", { + action: "eth_getTransactionCount", + address: params.address, + tag: params.blockTag + })); + + case 7: + return _context3.abrupt("return", this.fetch("proxy", { + action: "eth_getCode", + address: params.address, + tag: params.blockTag + })); + + case 8: + return _context3.abrupt("return", this.fetch("proxy", { + action: "eth_getStorageAt", + address: params.address, + position: params.position, + tag: params.blockTag + })); + + case 9: + return _context3.abrupt("return", this.fetch("proxy", { + action: "eth_sendRawTransaction", + hex: params.signedTransaction + }, true)["catch"](function (error) { + return checkError("sendTransaction", error, params.signedTransaction); + })); + + case 10: + if (!params.blockTag) { + _context3.next = 12; + break; + } + + return _context3.abrupt("return", this.fetch("proxy", { + action: "eth_getBlockByNumber", + tag: params.blockTag, + "boolean": params.includeTransactions ? "true" : "false" + })); + + case 12: + throw new Error("getBlock by blockHash not implemented"); + + case 13: + return _context3.abrupt("return", this.fetch("proxy", { + action: "eth_getTransactionByHash", + txhash: params.transactionHash + })); + + case 14: + return _context3.abrupt("return", this.fetch("proxy", { + action: "eth_getTransactionReceipt", + txhash: params.transactionHash + })); + + case 15: + if (!(params.blockTag !== "latest")) { + _context3.next = 17; + break; + } + + throw new Error("EtherscanProvider does not support blockTag for call"); + + case 17: + postData = getTransactionPostData(params.transaction); + postData.module = "proxy"; + postData.action = "eth_call"; + _context3.prev = 20; + _context3.next = 23; + return this.fetch("proxy", postData, true); + + case 23: + return _context3.abrupt("return", _context3.sent); + + case 26: + _context3.prev = 26; + _context3.t1 = _context3["catch"](20); + return _context3.abrupt("return", checkError("call", _context3.t1, params.transaction)); + + case 29: + _postData = getTransactionPostData(params.transaction); + _postData.module = "proxy"; + _postData.action = "eth_estimateGas"; + _context3.prev = 32; + _context3.next = 35; + return this.fetch("proxy", _postData, true); + + case 35: + return _context3.abrupt("return", _context3.sent); + + case 38: + _context3.prev = 38; + _context3.t2 = _context3["catch"](32); + return _context3.abrupt("return", checkError("estimateGas", _context3.t2, params.transaction)); + + case 41: + args = { + action: "getLogs" + }; + + if (params.filter.fromBlock) { + args.fromBlock = checkLogTag(params.filter.fromBlock); + } + + if (params.filter.toBlock) { + args.toBlock = checkLogTag(params.filter.toBlock); + } + + if (params.filter.address) { + args.address = params.filter.address; + } // @TODO: We can handle slightly more complicated logs using the logs API + + + if (params.filter.topics && params.filter.topics.length > 0) { + if (params.filter.topics.length > 1) { + logger.throwError("unsupported topic count", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"].errors.UNSUPPORTED_OPERATION, { + topics: params.filter.topics + }); + } + + if (params.filter.topics.length === 1) { + topic0 = params.filter.topics[0]; + + if (typeof topic0 !== "string" || topic0.length !== 66) { + logger.throwError("unsupported topic format", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_5__["Logger"].errors.UNSUPPORTED_OPERATION, { + topic0: topic0 + }); + } + + args.topic0 = topic0; + } + } + + _context3.next = 48; + return this.fetch("logs", args); + + case 48: + logs = _context3.sent; + // Cache txHash => blockHash + blocks = {}; // Add any missing blockHash to the logs + + i = 0; + + case 51: + if (!(i < logs.length)) { + _context3.next = 64; + break; + } + + log = logs[i]; + + if (!(log.blockHash != null)) { + _context3.next = 55; + break; + } + + return _context3.abrupt("continue", 61); + + case 55: + if (!(blocks[log.blockNumber] == null)) { + _context3.next = 60; + break; + } + + _context3.next = 58; + return this.getBlock(log.blockNumber); + + case 58: + block = _context3.sent; + + if (block) { + blocks[log.blockNumber] = block.hash; + } + + case 60: + log.blockHash = blocks[log.blockNumber]; + + case 61: + i++; + _context3.next = 51; + break; + + case 64: + return _context3.abrupt("return", logs); + + case 65: + if (!(this.network.name !== "homestead")) { + _context3.next = 67; + break; + } + + return _context3.abrupt("return", 0.0); + + case 67: + _context3.t3 = parseFloat; + _context3.next = 70; + return this.fetch("stats", { + action: "ethprice" + }); + + case 70: + _context3.t4 = _context3.sent.ethusd; + return _context3.abrupt("return", (0, _context3.t3)(_context3.t4)); + + case 72: + return _context3.abrupt("break", 73); + + case 73: + return _context3.abrupt("return", _super.perform.call(this, method, params)); + + case 74: + case "end": + return _context3.stop(); + } + } + }, _callee3, this, [[20, 26], [32, 38]]); + })); + } // Note: The `page` page parameter only allows pagination within the + // 10,000 window available without a page and offset parameter + // Error: Result window is too large, PageNo x Offset size must + // be less than or equal to 10000 + + }, { + key: "getHistory", + value: function getHistory(addressOrName, startBlock, endBlock) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { + var _this4 = this; + + var params, result; + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + _context4.next = 2; + return this.resolveName(addressOrName); + + case 2: + _context4.t0 = _context4.sent; + _context4.t1 = startBlock == null ? 0 : startBlock; + _context4.t2 = endBlock == null ? 99999999 : endBlock; + params = { + action: "txlist", + address: _context4.t0, + startblock: _context4.t1, + endblock: _context4.t2, + sort: "asc" + }; + _context4.next = 8; + return this.fetch("account", params); + + case 8: + result = _context4.sent; + return _context4.abrupt("return", result.map(function (tx) { + ["contractAddress", "to"].forEach(function (key) { + if (tx[key] == "") { + delete tx[key]; + } + }); + + if (tx.creates == null && tx.contractAddress != null) { + tx.creates = tx.contractAddress; + } + + var item = _this4.formatter.transactionResponse(tx); + + if (tx.timeStamp) { + item.timestamp = parseInt(tx.timeStamp); + } + + return item; + })); + + case 10: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + } + }, { + key: "isCommunityResource", + value: function isCommunityResource() { + return this.apiKey === defaultApiKey; + } + }]); + + return EtherscanProvider; +}(_base_provider__WEBPACK_IMPORTED_MODULE_7__["BaseProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/fallback-provider.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/fallback-provider.js ***! + \************************************************************************************************/ +/*! exports provided: FallbackProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FallbackProvider", function() { return FallbackProvider; }); +/* harmony import */ var _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-provider */ "./node_modules/@ethersproject/abstract-provider/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_random__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/random */ "./node_modules/@ethersproject/random/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var _base_provider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./base-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/base-provider.js"); +/* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./formatter */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/formatter.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); + + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"](_version__WEBPACK_IMPORTED_MODULE_9__["version"]); + +function now() { + return new Date().getTime(); +} // Returns to network as long as all agree, or null if any is null. +// Throws an error if any two networks do not match. + + +function checkNetworks(networks) { + var result = null; + + for (var i = 0; i < networks.length; i++) { + var network = networks[i]; // Null! We do not know our network; bail. + + if (network == null) { + return null; + } + + if (result) { + // Make sure the network matches the previous networks + if (!(result.name === network.name && result.chainId === network.chainId && (result.ensAddress === network.ensAddress || result.ensAddress == null && network.ensAddress == null))) { + logger.throwArgumentError("provider mismatch", "networks", networks); + } + } else { + result = network; + } + } + + return result; +} + +function median(values, maxDelta) { + values = values.slice().sort(); + var middle = Math.floor(values.length / 2); // Odd length; take the middle + + if (values.length % 2) { + return values[middle]; + } // Even length; take the average of the two middle + + + var a = values[middle - 1], + b = values[middle]; + + if (maxDelta != null && Math.abs(a - b) > maxDelta) { + return null; + } + + return (a + b) / 2; +} + +function serialize(value) { + if (value === null) { + return "null"; + } else if (typeof value === "number" || typeof value === "boolean") { + return JSON.stringify(value); + } else if (typeof value === "string") { + return value; + } else if (_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].isBigNumber(value)) { + return value.toString(); + } else if (Array.isArray(value)) { + return JSON.stringify(value.map(function (i) { + return serialize(i); + })); + } else if (_typeof(value) === "object") { + var keys = Object.keys(value); + keys.sort(); + return "{" + keys.map(function (key) { + var v = value[key]; + + if (typeof v === "function") { + v = "[function]"; + } else { + v = serialize(v); + } + + return JSON.stringify(key) + ":" + v; + }).join(",") + "}"; + } + + throw new Error("unknown value type: " + _typeof(value)); +} // Next request ID to use for emitting debug info + + +var nextRid = 1; +; + +function stall(duration) { + var cancel = null; + var timer = null; + var promise = new Promise(function (resolve) { + cancel = function cancel() { + if (timer) { + clearTimeout(timer); + timer = null; + } + + resolve(); + }; + + timer = setTimeout(cancel, duration); + }); + + var wait = function wait(func) { + promise = promise.then(func); + return promise; + }; + + function getPromise() { + return promise; + } + + return { + cancel: cancel, + getPromise: getPromise, + wait: wait + }; +} + +var ForwardErrors = [_ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.CALL_EXCEPTION, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.INSUFFICIENT_FUNDS, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.NONCE_EXPIRED, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.REPLACEMENT_UNDERPRICED, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.UNPREDICTABLE_GAS_LIMIT]; +var ForwardProperties = ["address", "args", "errorArgs", "errorSignature", "method", "transaction"]; +; + +function exposeDebugConfig(config, now) { + var result = { + weight: config.weight + }; + Object.defineProperty(result, "provider", { + get: function get() { + return config.provider; + } + }); + + if (config.start) { + result.start = config.start; + } + + if (now) { + result.duration = now - config.start; + } + + if (config.done) { + if (config.error) { + result.error = config.error; + } else { + result.result = config.result || null; + } + } + + return result; +} + +function normalizedTally(normalize, quorum) { + return function (configs) { + // Count the votes for each result + var tally = {}; + configs.forEach(function (c) { + var value = normalize(c.result); + + if (!tally[value]) { + tally[value] = { + count: 0, + result: c.result + }; + } + + tally[value].count++; + }); // Check for a quorum on any given result + + var keys = Object.keys(tally); + + for (var i = 0; i < keys.length; i++) { + var check = tally[keys[i]]; + + if (check.count >= quorum) { + return check.result; + } + } // No quroum + + + return undefined; + }; +} + +function getProcessFunc(provider, method, params) { + var normalize = serialize; + + switch (method) { + case "getBlockNumber": + // Return the median value, unless there is (median + 1) is also + // present, in which case that is probably true and the median + // is going to be stale soon. In the event of a malicious node, + // the lie will be true soon enough. + return function (configs) { + var values = configs.map(function (c) { + return c.result; + }); // Get the median block number + + var blockNumber = median(configs.map(function (c) { + return c.result; + }), 2); + + if (blockNumber == null) { + return undefined; + } + + blockNumber = Math.ceil(blockNumber); // If the next block height is present, its prolly safe to use + + if (values.indexOf(blockNumber + 1) >= 0) { + blockNumber++; + } // Don't ever roll back the blockNumber + + + if (blockNumber >= provider._highestBlockNumber) { + provider._highestBlockNumber = blockNumber; + } + + return provider._highestBlockNumber; + }; + + case "getGasPrice": + // Return the middle (round index up) value, similar to median + // but do not average even entries and choose the higher. + // Malicious actors must compromise 50% of the nodes to lie. + return function (configs) { + var values = configs.map(function (c) { + return c.result; + }); + values.sort(); + return values[Math.floor(values.length / 2)]; + }; + + case "getEtherPrice": + // Returns the median price. Malicious actors must compromise at + // least 50% of the nodes to lie (in a meaningful way). + return function (configs) { + return median(configs.map(function (c) { + return c.result; + })); + }; + // No additional normalizing required; serialize is enough + + case "getBalance": + case "getTransactionCount": + case "getCode": + case "getStorageAt": + case "call": + case "estimateGas": + case "getLogs": + break; + // We drop the confirmations from transactions as it is approximate + + case "getTransaction": + case "getTransactionReceipt": + normalize = function normalize(tx) { + if (tx == null) { + return null; + } + + tx = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["shallowCopy"])(tx); + tx.confirmations = -1; + return serialize(tx); + }; + + break; + // We drop the confirmations from transactions as it is approximate + + case "getBlock": + // We drop the confirmations from transactions as it is approximate + if (params.includeTransactions) { + normalize = function normalize(block) { + if (block == null) { + return null; + } + + block = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["shallowCopy"])(block); + block.transactions = block.transactions.map(function (tx) { + tx = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["shallowCopy"])(tx); + tx.confirmations = -1; + return tx; + }); + return serialize(block); + }; + } else { + normalize = function normalize(block) { + if (block == null) { + return null; + } + + return serialize(block); + }; + } + + break; + + default: + throw new Error("unknown method: " + method); + } // Return the result if and only if the expected quorum is + // satisfied and agreed upon for the final result. + + + return normalizedTally(normalize, provider.quorum); +} // If we are doing a blockTag query, we need to make sure the backend is +// caught up to the FallbackProvider, before sending a request to it. + + +function waitForSync(config, blockNumber) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var provider; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + provider = config.provider; + + if (!(provider.blockNumber != null && provider.blockNumber >= blockNumber || blockNumber === -1)) { + _context.next = 3; + break; + } + + return _context.abrupt("return", provider); + + case 3: + return _context.abrupt("return", Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_5__["poll"])(function () { + return new Promise(function (resolve, reject) { + setTimeout(function () { + // We are synced + if (provider.blockNumber >= blockNumber) { + return resolve(provider); + } // We're done; just quit + + + // We're done; just quit + if (config.cancelled) { + return resolve(null); + } // Try again, next block + + + // Try again, next block + return resolve(undefined); + }, 0); + }); + }, { + oncePoll: provider + })); + + case 4: + case "end": + return _context.stop(); + } + } + }, _callee); + })); +} + +function getRunner(config, currentBlockNumber, method, params) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var provider, filter; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + provider = config.provider; + _context2.t0 = method; + _context2.next = _context2.t0 === "getBlockNumber" ? 4 : _context2.t0 === "getGasPrice" ? 4 : _context2.t0 === "getEtherPrice" ? 5 : _context2.t0 === "getBalance" ? 8 : _context2.t0 === "getTransactionCount" ? 8 : _context2.t0 === "getCode" ? 8 : _context2.t0 === "getStorageAt" ? 13 : _context2.t0 === "getBlock" ? 18 : _context2.t0 === "call" ? 23 : _context2.t0 === "estimateGas" ? 23 : _context2.t0 === "getTransaction" ? 28 : _context2.t0 === "getTransactionReceipt" ? 28 : _context2.t0 === "getLogs" ? 29 : 35; + break; + + case 4: + return _context2.abrupt("return", provider[method]()); + + case 5: + if (!provider.getEtherPrice) { + _context2.next = 7; + break; + } + + return _context2.abrupt("return", provider.getEtherPrice()); + + case 7: + return _context2.abrupt("break", 35); + + case 8: + if (!(params.blockTag && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(params.blockTag))) { + _context2.next = 12; + break; + } + + _context2.next = 11; + return waitForSync(config, currentBlockNumber); + + case 11: + provider = _context2.sent; + + case 12: + return _context2.abrupt("return", provider[method](params.address, params.blockTag || "latest")); + + case 13: + if (!(params.blockTag && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(params.blockTag))) { + _context2.next = 17; + break; + } + + _context2.next = 16; + return waitForSync(config, currentBlockNumber); + + case 16: + provider = _context2.sent; + + case 17: + return _context2.abrupt("return", provider.getStorageAt(params.address, params.position, params.blockTag || "latest")); + + case 18: + if (!(params.blockTag && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(params.blockTag))) { + _context2.next = 22; + break; + } + + _context2.next = 21; + return waitForSync(config, currentBlockNumber); + + case 21: + provider = _context2.sent; + + case 22: + return _context2.abrupt("return", provider[params.includeTransactions ? "getBlockWithTransactions" : "getBlock"](params.blockTag || params.blockHash)); + + case 23: + if (!(params.blockTag && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(params.blockTag))) { + _context2.next = 27; + break; + } + + _context2.next = 26; + return waitForSync(config, currentBlockNumber); + + case 26: + provider = _context2.sent; + + case 27: + return _context2.abrupt("return", provider[method](params.transaction)); + + case 28: + return _context2.abrupt("return", provider[method](params.transactionHash)); + + case 29: + filter = params.filter; + + if (!(filter.fromBlock && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(filter.fromBlock) || filter.toBlock && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(filter.toBlock))) { + _context2.next = 34; + break; + } + + _context2.next = 33; + return waitForSync(config, currentBlockNumber); + + case 33: + provider = _context2.sent; + + case 34: + return _context2.abrupt("return", provider.getLogs(filter)); + + case 35: + return _context2.abrupt("return", logger.throwError("unknown method error", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.UNKNOWN_ERROR, { + method: method, + params: params + })); + + case 36: + case "end": + return _context2.stop(); + } + } + }, _callee2); + })); +} + +var FallbackProvider = /*#__PURE__*/function (_BaseProvider) { + _inherits(FallbackProvider, _BaseProvider); + + var _super = _createSuper(FallbackProvider); + + function FallbackProvider(providers, quorum) { + var _this; + + _classCallCheck(this, FallbackProvider); + + logger.checkNew(this instanceof FallbackProvider ? this.constructor : void 0, FallbackProvider); + + if (providers.length === 0) { + logger.throwArgumentError("missing providers", "providers", providers); + } + + var providerConfigs = providers.map(function (configOrProvider, index) { + if (_ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__["Provider"].isProvider(configOrProvider)) { + var stallTimeout = Object(_formatter__WEBPACK_IMPORTED_MODULE_7__["isCommunityResource"])(configOrProvider) ? 2000 : 750; + var priority = 1; + return Object.freeze({ + provider: configOrProvider, + weight: 1, + stallTimeout: stallTimeout, + priority: priority + }); + } + + var config = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["shallowCopy"])(configOrProvider); + + if (config.priority == null) { + config.priority = 1; + } + + if (config.stallTimeout == null) { + config.stallTimeout = Object(_formatter__WEBPACK_IMPORTED_MODULE_7__["isCommunityResource"])(configOrProvider) ? 2000 : 750; + } + + if (config.weight == null) { + config.weight = 1; + } + + var weight = config.weight; + + if (weight % 1 || weight > 512 || weight < 1) { + logger.throwArgumentError("invalid weight; must be integer in [1, 512]", "providers[".concat(index, "].weight"), weight); + } + + return Object.freeze(config); + }); + var total = providerConfigs.reduce(function (accum, c) { + return accum + c.weight; + }, 0); + + if (quorum == null) { + quorum = total / 2; + } else if (quorum > total) { + logger.throwArgumentError("quorum will always fail; larger than total weight", "quorum", quorum); + } // Are all providers' networks are known + + + var networkOrReady = checkNetworks(providerConfigs.map(function (c) { + return c.provider.network; + })); // Not all networks are known; we must stall + + if (networkOrReady == null) { + networkOrReady = new Promise(function (resolve, reject) { + setTimeout(function () { + _this.detectNetwork().then(resolve, reject); + }, 0); + }); + } + + _this = _super.call(this, networkOrReady); // Preserve a copy, so we do not get mutated + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["defineReadOnly"])(_assertThisInitialized(_this), "providerConfigs", Object.freeze(providerConfigs)); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["defineReadOnly"])(_assertThisInitialized(_this), "quorum", quorum); + _this._highestBlockNumber = -1; + return _this; + } + + _createClass(FallbackProvider, [{ + key: "detectNetwork", + value: function detectNetwork() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var networks; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return Promise.all(this.providerConfigs.map(function (c) { + return c.provider.getNetwork(); + })); + + case 2: + networks = _context3.sent; + return _context3.abrupt("return", checkNetworks(networks)); + + case 4: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + } + }, { + key: "perform", + value: function perform(method, params) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { + var _this2 = this; + + var results, _i, result, processFunc, configs, currentBlockNumber, i, first, _loop, _ret; + + return regeneratorRuntime.wrap(function _callee4$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + if (!(method === "sendTransaction")) { + _context5.next = 13; + break; + } + + _context5.next = 3; + return Promise.all(this.providerConfigs.map(function (c) { + return c.provider.sendTransaction(params.signedTransaction).then(function (result) { + return result.hash; + }, function (error) { + return error; + }); + })); + + case 3: + results = _context5.sent; + _i = 0; + + case 5: + if (!(_i < results.length)) { + _context5.next = 12; + break; + } + + result = results[_i]; + + if (!(typeof result === "string")) { + _context5.next = 9; + break; + } + + return _context5.abrupt("return", result); + + case 9: + _i++; + _context5.next = 5; + break; + + case 12: + throw results[0]; + + case 13: + if (!(this._highestBlockNumber === -1 && method !== "getBlockNumber")) { + _context5.next = 16; + break; + } + + _context5.next = 16; + return this.getBlockNumber(); + + case 16: + processFunc = getProcessFunc(this, method, params); // Shuffle the providers and then sort them by their priority; we + // shallowCopy them since we will store the result in them too + + configs = Object(_ethersproject_random__WEBPACK_IMPORTED_MODULE_4__["shuffled"])(this.providerConfigs.map(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["shallowCopy"])); + configs.sort(function (a, b) { + return a.priority - b.priority; + }); + currentBlockNumber = this._highestBlockNumber; + i = 0; + first = true; + _loop = /*#__PURE__*/regeneratorRuntime.mark(function _loop() { + var t0, inflightWeight, _loop2, waiting, results, _result, errors; + + return regeneratorRuntime.wrap(function _loop$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + t0 = now(); // Compute the inflight weight (exclude anything past) + + inflightWeight = configs.filter(function (c) { + return c.runner && t0 - c.start < c.stallTimeout; + }).reduce(function (accum, c) { + return accum + c.weight; + }, 0); // Start running enough to meet quorum + + _loop2 = function _loop2() { + var config = configs[i++]; + var rid = nextRid++; + config.start = now(); + config.staller = stall(config.stallTimeout); + config.staller.wait(function () { + config.staller = null; + }); + config.runner = getRunner(config, currentBlockNumber, method, params).then(function (result) { + config.done = true; + config.result = result; + + if (_this2.listenerCount("debug")) { + _this2.emit("debug", { + action: "request", + rid: rid, + backend: exposeDebugConfig(config, now()), + request: { + method: method, + params: Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["deepCopy"])(params) + }, + provider: _this2 + }); + } + }, function (error) { + config.done = true; + config.error = error; + + if (_this2.listenerCount("debug")) { + _this2.emit("debug", { + action: "request", + rid: rid, + backend: exposeDebugConfig(config, now()), + request: { + method: method, + params: Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["deepCopy"])(params) + }, + provider: _this2 + }); + } + }); + + if (_this2.listenerCount("debug")) { + _this2.emit("debug", { + action: "request", + rid: rid, + backend: exposeDebugConfig(config, null), + request: { + method: method, + params: Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_3__["deepCopy"])(params) + }, + provider: _this2 + }); + } + + inflightWeight += config.weight; + }; + + while (inflightWeight < _this2.quorum && i < configs.length) { + _loop2(); + } // Wait for anything meaningful to finish or stall out + + + waiting = []; + configs.forEach(function (c) { + if (c.done || !c.runner) { + return; + } + + waiting.push(c.runner); + + if (c.staller) { + waiting.push(c.staller.getPromise()); + } + }); + + if (!waiting.length) { + _context4.next = 9; + break; + } + + _context4.next = 9; + return Promise.race(waiting); + + case 9: + // Check the quorum and process the results; the process function + // may additionally decide the quorum is not met + results = configs.filter(function (c) { + return c.done && c.error == null; + }); + + if (!(results.length >= _this2.quorum)) { + _context4.next = 19; + break; + } + + _result = processFunc(results); + + if (!(_result !== undefined)) { + _context4.next = 15; + break; + } + + // Shut down any stallers + configs.forEach(function (c) { + if (c.staller) { + c.staller.cancel(); + } + + c.cancelled = true; + }); + return _context4.abrupt("return", { + v: _result + }); + + case 15: + if (first) { + _context4.next = 18; + break; + } + + _context4.next = 18; + return stall(100).getPromise(); + + case 18: + first = false; + + case 19: + // No result, check for errors that should be forwarded + errors = configs.reduce(function (accum, c) { + if (!c.done || c.error == null) { + return accum; + } + + var code = c.error.code; + + if (ForwardErrors.indexOf(code) >= 0) { + if (!accum[code]) { + accum[code] = { + error: c.error, + weight: 0 + }; + } + + accum[code].weight += c.weight; + } + + return accum; + }, {}); + Object.keys(errors).forEach(function (errorCode) { + var tally = errors[errorCode]; + + if (tally.weight < _this2.quorum) { + return; + } // Shut down any stallers + + + configs.forEach(function (c) { + if (c.staller) { + c.staller.cancel(); + } + + c.cancelled = true; + }); + var e = tally.error; + var props = {}; + ForwardProperties.forEach(function (name) { + if (e[name] == null) { + return; + } + + props[name] = e[name]; + }); + logger.throwError(e.reason || e.message, errorCode, props); + }); // All configs have run to completion; we will never get more data + + if (!(configs.filter(function (c) { + return !c.done; + }).length === 0)) { + _context4.next = 23; + break; + } + + return _context4.abrupt("return", "break"); + + case 23: + case "end": + return _context4.stop(); + } + } + }, _loop); + }); + + case 23: + if (false) {} + + return _context5.delegateYield(_loop(), "t0", 25); + + case 25: + _ret = _context5.t0; + + if (!(_ret === "break")) { + _context5.next = 28; + break; + } + + return _context5.abrupt("break", 32); + + case 28: + if (!(_typeof(_ret) === "object")) { + _context5.next = 30; + break; + } + + return _context5.abrupt("return", _ret.v); + + case 30: + _context5.next = 23; + break; + + case 32: + // Shut down any stallers; shouldn't be any + configs.forEach(function (c) { + if (c.staller) { + c.staller.cancel(); + } + + c.cancelled = true; + }); + return _context5.abrupt("return", logger.throwError("failed to meet quorum", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.SERVER_ERROR, { + method: method, + params: params, + //results: configs.map((c) => c.result), + //errors: configs.map((c) => c.error), + results: configs.map(function (c) { + return exposeDebugConfig(c); + }), + provider: this + })); + + case 34: + case "end": + return _context5.stop(); + } + } + }, _callee4, this); + })); + } + }]); + + return FallbackProvider; +}(_base_provider__WEBPACK_IMPORTED_MODULE_6__["BaseProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/formatter.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/formatter.js ***! + \****************************************************************************************/ +/*! exports provided: Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Formatter", function() { return Formatter; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCommunityResourcable", function() { return isCommunityResourcable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isCommunityResource", function() { return isCommunityResource; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showThrottleMessage", function() { return showThrottleMessage; }); +/* harmony import */ var _ethersproject_address__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/address */ "./node_modules/@ethersproject/address/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/constants */ "./node_modules/@ethersproject/constants/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_transactions__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/transactions */ "./node_modules/@ethersproject/transactions/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); + + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + + + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_6__["Logger"](_version__WEBPACK_IMPORTED_MODULE_7__["version"]); +var Formatter = /*#__PURE__*/function () { + function Formatter() { + _classCallCheck(this, Formatter); + + logger.checkNew(this instanceof Formatter ? this.constructor : void 0, Formatter); + this.formats = this.getDefaultFormats(); + } + + _createClass(Formatter, [{ + key: "getDefaultFormats", + value: function getDefaultFormats() { + var _this = this; + + var formats = {}; + var address = this.address.bind(this); + var bigNumber = this.bigNumber.bind(this); + var blockTag = this.blockTag.bind(this); + var data = this.data.bind(this); + var hash = this.hash.bind(this); + var hex = this.hex.bind(this); + var number = this.number.bind(this); + var type = this.type.bind(this); + + var strictData = function strictData(v) { + return _this.data(v, true); + }; + + formats.transaction = { + hash: hash, + type: type, + accessList: Formatter.allowNull(this.accessList.bind(this), null), + blockHash: Formatter.allowNull(hash, null), + blockNumber: Formatter.allowNull(number, null), + transactionIndex: Formatter.allowNull(number, null), + confirmations: Formatter.allowNull(number, null), + from: address, + // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas) + // must be set + gasPrice: Formatter.allowNull(bigNumber), + maxPriorityFeePerGas: Formatter.allowNull(bigNumber), + maxFeePerGas: Formatter.allowNull(bigNumber), + gasLimit: bigNumber, + to: Formatter.allowNull(address, null), + value: bigNumber, + nonce: number, + data: data, + r: Formatter.allowNull(this.uint256), + s: Formatter.allowNull(this.uint256), + v: Formatter.allowNull(number), + creates: Formatter.allowNull(address, null), + raw: Formatter.allowNull(data) + }; + formats.transactionRequest = { + from: Formatter.allowNull(address), + nonce: Formatter.allowNull(number), + gasLimit: Formatter.allowNull(bigNumber), + gasPrice: Formatter.allowNull(bigNumber), + maxPriorityFeePerGas: Formatter.allowNull(bigNumber), + maxFeePerGas: Formatter.allowNull(bigNumber), + to: Formatter.allowNull(address), + value: Formatter.allowNull(bigNumber), + data: Formatter.allowNull(strictData), + type: Formatter.allowNull(number), + accessList: Formatter.allowNull(this.accessList.bind(this), null) + }; + formats.receiptLog = { + transactionIndex: number, + blockNumber: number, + transactionHash: hash, + address: address, + topics: Formatter.arrayOf(hash), + data: data, + logIndex: number, + blockHash: hash + }; + formats.receipt = { + to: Formatter.allowNull(this.address, null), + from: Formatter.allowNull(this.address, null), + contractAddress: Formatter.allowNull(address, null), + transactionIndex: number, + // should be allowNull(hash), but broken-EIP-658 support is handled in receipt + root: Formatter.allowNull(hex), + gasUsed: bigNumber, + logsBloom: Formatter.allowNull(data), + blockHash: hash, + transactionHash: hash, + logs: Formatter.arrayOf(this.receiptLog.bind(this)), + blockNumber: number, + confirmations: Formatter.allowNull(number, null), + cumulativeGasUsed: bigNumber, + effectiveGasPrice: Formatter.allowNull(bigNumber), + status: Formatter.allowNull(number), + type: type + }; + formats.block = { + hash: Formatter.allowNull(hash), + parentHash: hash, + number: number, + timestamp: number, + nonce: Formatter.allowNull(hex), + difficulty: this.difficulty.bind(this), + gasLimit: bigNumber, + gasUsed: bigNumber, + miner: Formatter.allowNull(address), + extraData: data, + transactions: Formatter.allowNull(Formatter.arrayOf(hash)), + baseFeePerGas: Formatter.allowNull(bigNumber) + }; + formats.blockWithTransactions = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["shallowCopy"])(formats.block); + formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this))); + formats.filter = { + fromBlock: Formatter.allowNull(blockTag, undefined), + toBlock: Formatter.allowNull(blockTag, undefined), + blockHash: Formatter.allowNull(hash, undefined), + address: Formatter.allowNull(address, undefined), + topics: Formatter.allowNull(this.topics.bind(this), undefined) + }; + formats.filterLog = { + blockNumber: Formatter.allowNull(number), + blockHash: Formatter.allowNull(hash), + transactionIndex: number, + removed: Formatter.allowNull(this["boolean"].bind(this)), + address: address, + data: Formatter.allowFalsish(data, "0x"), + topics: Formatter.arrayOf(hash), + transactionHash: hash, + logIndex: number + }; + return formats; + } + }, { + key: "accessList", + value: function accessList(_accessList) { + return Object(_ethersproject_transactions__WEBPACK_IMPORTED_MODULE_5__["accessListify"])(_accessList || []); + } // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number + // Strict! Used on input. + + }, { + key: "number", + value: function number(_number) { + if (_number === "0x") { + return 0; + } + + return _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(_number).toNumber(); + } + }, { + key: "type", + value: function type(number) { + if (number === "0x" || number == null) { + return 0; + } + + return _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(number).toNumber(); + } // Strict! Used on input. + + }, { + key: "bigNumber", + value: function bigNumber(value) { + return _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(value); + } // Requires a boolean, "true" or "false"; returns a boolean + + }, { + key: "boolean", + value: function boolean(value) { + if (typeof value === "boolean") { + return value; + } + + if (typeof value === "string") { + value = value.toLowerCase(); + + if (value === "true") { + return true; + } + + if (value === "false") { + return false; + } + } + + throw new Error("invalid boolean - " + value); + } + }, { + key: "hex", + value: function hex(value, strict) { + if (typeof value === "string") { + if (!strict && value.substring(0, 2) !== "0x") { + value = "0x" + value; + } + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(value)) { + return value.toLowerCase(); + } + } + + return logger.throwArgumentError("invalid hash", "value", value); + } + }, { + key: "data", + value: function data(value, strict) { + var result = this.hex(value, strict); + + if (result.length % 2 !== 0) { + throw new Error("invalid data; odd-length - " + value); + } + + return result; + } // Requires an address + // Strict! Used on input. + + }, { + key: "address", + value: function address(value) { + return Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getAddress"])(value); + } + }, { + key: "callAddress", + value: function callAddress(value) { + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(value, 32)) { + return null; + } + + var address = Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getAddress"])(Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexDataSlice"])(value, 12)); + return address === _ethersproject_constants__WEBPACK_IMPORTED_MODULE_3__["AddressZero"] ? null : address; + } + }, { + key: "contractAddress", + value: function contractAddress(value) { + return Object(_ethersproject_address__WEBPACK_IMPORTED_MODULE_0__["getContractAddress"])(value); + } // Strict! Used on input. + + }, { + key: "blockTag", + value: function blockTag(_blockTag) { + if (_blockTag == null) { + return "latest"; + } + + if (_blockTag === "earliest") { + return "0x0"; + } + + if (_blockTag === "latest" || _blockTag === "pending") { + return _blockTag; + } + + if (typeof _blockTag === "number" || Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(_blockTag)) { + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexValue"])(_blockTag); + } + + throw new Error("invalid blockTag"); + } // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash. + + }, { + key: "hash", + value: function hash(value, strict) { + var result = this.hex(value, strict); + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexDataLength"])(result) !== 32) { + return logger.throwArgumentError("invalid hash", "value", value); + } + + return result; + } // Returns the difficulty as a number, or if too large (i.e. PoA network) null + + }, { + key: "difficulty", + value: function difficulty(value) { + if (value == null) { + return null; + } + + var v = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(value); + + try { + return v.toNumber(); + } catch (error) {} + + return null; + } + }, { + key: "uint256", + value: function uint256(value) { + if (!Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(value)) { + throw new Error("invalid uint256"); + } + + return Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexZeroPad"])(value, 32); + } + }, { + key: "_block", + value: function _block(value, format) { + if (value.author != null && value.miner == null) { + value.miner = value.author; + } // The difficulty may need to come from _difficulty in recursed blocks + + + var difficulty = value._difficulty != null ? value._difficulty : value.difficulty; + var result = Formatter.check(format, value); + result._difficulty = difficulty == null ? null : _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(difficulty); + return result; + } + }, { + key: "block", + value: function block(value) { + return this._block(value, this.formats.block); + } + }, { + key: "blockWithTransactions", + value: function blockWithTransactions(value) { + return this._block(value, this.formats.blockWithTransactions); + } // Strict! Used on input. + + }, { + key: "transactionRequest", + value: function transactionRequest(value) { + return Formatter.check(this.formats.transactionRequest, value); + } + }, { + key: "transactionResponse", + value: function transactionResponse(transaction) { + // Rename gas to gasLimit + if (transaction.gas != null && transaction.gasLimit == null) { + transaction.gasLimit = transaction.gas; + } // Some clients (TestRPC) do strange things like return 0x0 for the + // 0 address; correct this to be a real address + + + if (transaction.to && _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(transaction.to).isZero()) { + transaction.to = "0x0000000000000000000000000000000000000000"; + } // Rename input to data + + + if (transaction.input != null && transaction.data == null) { + transaction.data = transaction.input; + } // If to and creates are empty, populate the creates from the transaction + + + if (transaction.to == null && transaction.creates == null) { + transaction.creates = this.contractAddress(transaction); + } + + if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) { + transaction.accessList = []; + } + + var result = Formatter.check(this.formats.transaction, transaction); + + if (transaction.chainId != null) { + var chainId = transaction.chainId; + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(chainId)) { + chainId = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(chainId).toNumber(); + } + + result.chainId = chainId; + } else { + var _chainId = transaction.networkId; // geth-etc returns chainId + + if (_chainId == null && result.v == null) { + _chainId = transaction.chainId; + } + + if (Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(_chainId)) { + _chainId = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(_chainId).toNumber(); + } + + if (typeof _chainId !== "number" && result.v != null) { + _chainId = (result.v - 35) / 2; + + if (_chainId < 0) { + _chainId = 0; + } + + _chainId = parseInt(_chainId); + } + + if (typeof _chainId !== "number") { + _chainId = 0; + } + + result.chainId = _chainId; + } // 0x0000... should actually be null + + + if (result.blockHash && result.blockHash.replace(/0/g, "") === "x") { + result.blockHash = null; + } + + return result; + } + }, { + key: "transaction", + value: function transaction(value) { + return Object(_ethersproject_transactions__WEBPACK_IMPORTED_MODULE_5__["parse"])(value); + } + }, { + key: "receiptLog", + value: function receiptLog(value) { + return Formatter.check(this.formats.receiptLog, value); + } + }, { + key: "receipt", + value: function receipt(value) { + var result = Formatter.check(this.formats.receipt, value); // RSK incorrectly implemented EIP-658, so we munge things a bit here for it + + if (result.root != null) { + if (result.root.length <= 4) { + // Could be 0x00, 0x0, 0x01 or 0x1 + var _value = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(result.root).toNumber(); + + if (_value === 0 || _value === 1) { + // Make sure if both are specified, they match + if (result.status != null && result.status !== _value) { + logger.throwArgumentError("alt-root-status/status mismatch", "value", { + root: result.root, + status: result.status + }); + } + + result.status = _value; + delete result.root; + } else { + logger.throwArgumentError("invalid alt-root-status", "value.root", result.root); + } + } else if (result.root.length !== 66) { + // Must be a valid bytes32 + logger.throwArgumentError("invalid root hash", "value.root", result.root); + } + } + + if (result.status != null) { + result.byzantium = true; + } + + return result; + } + }, { + key: "topics", + value: function topics(value) { + var _this2 = this; + + if (Array.isArray(value)) { + return value.map(function (v) { + return _this2.topics(v); + }); + } else if (value != null) { + return this.hash(value, true); + } + + return null; + } + }, { + key: "filter", + value: function filter(value) { + return Formatter.check(this.formats.filter, value); + } + }, { + key: "filterLog", + value: function filterLog(value) { + return Formatter.check(this.formats.filterLog, value); + } + }], [{ + key: "check", + value: function check(format, object) { + var result = {}; + + for (var key in format) { + try { + var value = format[key](object[key]); + + if (value !== undefined) { + result[key] = value; + } + } catch (error) { + error.checkKey = key; + error.checkValue = object[key]; + throw error; + } + } + + return result; + } // if value is null-ish, nullValue is returned + + }, { + key: "allowNull", + value: function allowNull(format, nullValue) { + return function (value) { + if (value == null) { + return nullValue; + } + + return format(value); + }; + } // If value is false-ish, replaceValue is returned + + }, { + key: "allowFalsish", + value: function allowFalsish(format, replaceValue) { + return function (value) { + if (!value) { + return replaceValue; + } + + return format(value); + }; + } // Requires an Array satisfying check + + }, { + key: "arrayOf", + value: function arrayOf(format) { + return function (array) { + if (!Array.isArray(array)) { + throw new Error("not an array"); + } + + var result = []; + array.forEach(function (value) { + result.push(format(value)); + }); + return result; + }; + } + }]); + + return Formatter; +}(); +function isCommunityResourcable(value) { + return value && typeof value.isCommunityResource === "function"; +} +function isCommunityResource(value) { + return isCommunityResourcable(value) && value.isCommunityResource(); +} // Show the throttle message only once + +var throttleMessage = false; +function showThrottleMessage() { + if (throttleMessage) { + return; + } + + throttleMessage = true; + console.log("========= NOTICE ========="); + console.log("Request-Rate Exceeded (this message will not be repeated)"); + console.log(""); + console.log("The default API keys for each service are provided as a highly-throttled,"); + console.log("community resource for low-traffic projects and early prototyping."); + console.log(""); + console.log("While your application will continue to function, we highly recommended"); + console.log("signing up for your own API keys to improve performance, increase your"); + console.log("request rate/limit and enable other perks, such as metrics and advanced APIs."); + console.log(""); + console.log("For more details: https:/\/docs.ethers.io/api-keys/"); + console.log("=========================="); +} + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/index.js": +/*!************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/index.js ***! + \************************************************************************************/ +/*! exports provided: Provider, BaseProvider, Resolver, UrlJsonRpcProvider, FallbackProvider, AlchemyProvider, AlchemyWebSocketProvider, AnkrProvider, CloudflareProvider, EtherscanProvider, InfuraProvider, InfuraWebSocketProvider, JsonRpcProvider, JsonRpcBatchProvider, NodesmithProvider, PocketProvider, StaticJsonRpcProvider, Web3Provider, WebSocketProvider, IpcProvider, JsonRpcSigner, getDefaultProvider, getNetwork, isCommunityResource, isCommunityResourcable, showThrottleMessage, Formatter */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getDefaultProvider", function() { return getDefaultProvider; }); +/* harmony import */ var _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-provider */ "./node_modules/@ethersproject/abstract-provider/lib.esm/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Provider", function() { return _ethersproject_abstract_provider__WEBPACK_IMPORTED_MODULE_0__["Provider"]; }); + +/* harmony import */ var _ethersproject_networks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/networks */ "./node_modules/@ethersproject/networks/lib.esm/index.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "getNetwork", function() { return _ethersproject_networks__WEBPACK_IMPORTED_MODULE_1__["getNetwork"]; }); + +/* harmony import */ var _base_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./base-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/base-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BaseProvider", function() { return _base_provider__WEBPACK_IMPORTED_MODULE_2__["BaseProvider"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Resolver", function() { return _base_provider__WEBPACK_IMPORTED_MODULE_2__["Resolver"]; }); + +/* harmony import */ var _alchemy_provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./alchemy-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/alchemy-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AlchemyProvider", function() { return _alchemy_provider__WEBPACK_IMPORTED_MODULE_3__["AlchemyProvider"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AlchemyWebSocketProvider", function() { return _alchemy_provider__WEBPACK_IMPORTED_MODULE_3__["AlchemyWebSocketProvider"]; }); + +/* harmony import */ var _ankr_provider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ankr-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/ankr-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnkrProvider", function() { return _ankr_provider__WEBPACK_IMPORTED_MODULE_4__["AnkrProvider"]; }); + +/* harmony import */ var _cloudflare_provider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./cloudflare-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/cloudflare-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CloudflareProvider", function() { return _cloudflare_provider__WEBPACK_IMPORTED_MODULE_5__["CloudflareProvider"]; }); + +/* harmony import */ var _etherscan_provider__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./etherscan-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/etherscan-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EtherscanProvider", function() { return _etherscan_provider__WEBPACK_IMPORTED_MODULE_6__["EtherscanProvider"]; }); + +/* harmony import */ var _fallback_provider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./fallback-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/fallback-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "FallbackProvider", function() { return _fallback_provider__WEBPACK_IMPORTED_MODULE_7__["FallbackProvider"]; }); + +/* harmony import */ var _ipc_provider__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ipc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/ipc-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IpcProvider", function() { return _ipc_provider__WEBPACK_IMPORTED_MODULE_8__["IpcProvider"]; }); + +/* harmony import */ var _infura_provider__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./infura-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/infura-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InfuraProvider", function() { return _infura_provider__WEBPACK_IMPORTED_MODULE_9__["InfuraProvider"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InfuraWebSocketProvider", function() { return _infura_provider__WEBPACK_IMPORTED_MODULE_9__["InfuraWebSocketProvider"]; }); + +/* harmony import */ var _json_rpc_provider__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JsonRpcProvider", function() { return _json_rpc_provider__WEBPACK_IMPORTED_MODULE_10__["JsonRpcProvider"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JsonRpcSigner", function() { return _json_rpc_provider__WEBPACK_IMPORTED_MODULE_10__["JsonRpcSigner"]; }); + +/* harmony import */ var _json_rpc_batch_provider__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./json-rpc-batch-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-batch-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "JsonRpcBatchProvider", function() { return _json_rpc_batch_provider__WEBPACK_IMPORTED_MODULE_11__["JsonRpcBatchProvider"]; }); + +/* harmony import */ var _nodesmith_provider__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./nodesmith-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/nodesmith-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NodesmithProvider", function() { return _nodesmith_provider__WEBPACK_IMPORTED_MODULE_12__["NodesmithProvider"]; }); + +/* harmony import */ var _pocket_provider__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./pocket-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/pocket-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "PocketProvider", function() { return _pocket_provider__WEBPACK_IMPORTED_MODULE_13__["PocketProvider"]; }); + +/* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UrlJsonRpcProvider", function() { return _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_14__["UrlJsonRpcProvider"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "StaticJsonRpcProvider", function() { return _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_14__["StaticJsonRpcProvider"]; }); + +/* harmony import */ var _web3_provider__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./web3-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/web3-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Web3Provider", function() { return _web3_provider__WEBPACK_IMPORTED_MODULE_15__["Web3Provider"]; }); + +/* harmony import */ var _websocket_provider__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./websocket-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/websocket-provider.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WebSocketProvider", function() { return _websocket_provider__WEBPACK_IMPORTED_MODULE_16__["WebSocketProvider"]; }); + +/* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./formatter */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/formatter.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isCommunityResource", function() { return _formatter__WEBPACK_IMPORTED_MODULE_17__["isCommunityResource"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isCommunityResourcable", function() { return _formatter__WEBPACK_IMPORTED_MODULE_17__["isCommunityResourcable"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "showThrottleMessage", function() { return _formatter__WEBPACK_IMPORTED_MODULE_17__["showThrottleMessage"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Formatter", function() { return _formatter__WEBPACK_IMPORTED_MODULE_17__["Formatter"]; }); + +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); + + + + + + + + + + + + + + + + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_18__["Logger"](_version__WEBPACK_IMPORTED_MODULE_19__["version"]); //////////////////////// +// Helper Functions + +function getDefaultProvider(network, options) { + if (network == null) { + network = "homestead"; + } // If passed a URL, figure out the right type of provider based on the scheme + + + if (typeof network === "string") { + // @TODO: Add support for IpcProvider; maybe if it ends in ".ipc"? + // Handle http and ws (and their secure variants) + var match = network.match(/^(ws|http)s?:/i); + + if (match) { + switch (match[1]) { + case "http": + return new _json_rpc_provider__WEBPACK_IMPORTED_MODULE_10__["JsonRpcProvider"](network); + + case "ws": + return new _websocket_provider__WEBPACK_IMPORTED_MODULE_16__["WebSocketProvider"](network); + + default: + logger.throwArgumentError("unsupported URL scheme", "network", network); + } + } + } + + var n = Object(_ethersproject_networks__WEBPACK_IMPORTED_MODULE_1__["getNetwork"])(network); + + if (!n || !n._defaultProvider) { + logger.throwError("unsupported getDefaultProvider network", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_18__["Logger"].errors.NETWORK_ERROR, { + operation: "getDefaultProvider", + network: network + }); + } + + return n._defaultProvider({ + FallbackProvider: _fallback_provider__WEBPACK_IMPORTED_MODULE_7__["FallbackProvider"], + AlchemyProvider: _alchemy_provider__WEBPACK_IMPORTED_MODULE_3__["AlchemyProvider"], + AnkrProvider: _ankr_provider__WEBPACK_IMPORTED_MODULE_4__["AnkrProvider"], + CloudflareProvider: _cloudflare_provider__WEBPACK_IMPORTED_MODULE_5__["CloudflareProvider"], + EtherscanProvider: _etherscan_provider__WEBPACK_IMPORTED_MODULE_6__["EtherscanProvider"], + InfuraProvider: _infura_provider__WEBPACK_IMPORTED_MODULE_9__["InfuraProvider"], + JsonRpcProvider: _json_rpc_provider__WEBPACK_IMPORTED_MODULE_10__["JsonRpcProvider"], + NodesmithProvider: _nodesmith_provider__WEBPACK_IMPORTED_MODULE_12__["NodesmithProvider"], + PocketProvider: _pocket_provider__WEBPACK_IMPORTED_MODULE_13__["PocketProvider"], + Web3Provider: _web3_provider__WEBPACK_IMPORTED_MODULE_15__["Web3Provider"], + IpcProvider: _ipc_provider__WEBPACK_IMPORTED_MODULE_8__["IpcProvider"] + }, options); +} //////////////////////// +// Exports + + + + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/infura-provider.js": +/*!**********************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/infura-provider.js ***! + \**********************************************************************************************/ +/*! exports provided: InfuraWebSocketProvider, InfuraProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfuraWebSocketProvider", function() { return InfuraWebSocketProvider; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InfuraProvider", function() { return InfuraProvider; }); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _websocket_provider__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./websocket-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/websocket-provider.js"); +/* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./formatter */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/formatter.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +/* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__["Logger"](_version__WEBPACK_IMPORTED_MODULE_4__["version"]); + +var defaultProjectId = "84842078b09946638c03157f83405213"; +var InfuraWebSocketProvider = /*#__PURE__*/function (_WebSocketProvider) { + _inherits(InfuraWebSocketProvider, _WebSocketProvider); + + var _super = _createSuper(InfuraWebSocketProvider); + + function InfuraWebSocketProvider(network, apiKey) { + var _this; + + _classCallCheck(this, InfuraWebSocketProvider); + + var provider = new InfuraProvider(network, apiKey); + var connection = provider.connection; + + if (connection.password) { + logger.throwError("INFURA WebSocket project secrets unsupported", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "InfuraProvider.getWebSocketProvider()" + }); + } + + var url = connection.url.replace(/^http/i, "ws").replace("/v3/", "/ws/v3/"); + _this = _super.call(this, url, network); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this), "apiKey", provider.projectId); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this), "projectId", provider.projectId); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this), "projectSecret", provider.projectSecret); + return _this; + } + + _createClass(InfuraWebSocketProvider, [{ + key: "isCommunityResource", + value: function isCommunityResource() { + return this.projectId === defaultProjectId; + } + }]); + + return InfuraWebSocketProvider; +}(_websocket_provider__WEBPACK_IMPORTED_MODULE_1__["WebSocketProvider"]); +var InfuraProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) { + _inherits(InfuraProvider, _UrlJsonRpcProvider); + + var _super2 = _createSuper(InfuraProvider); + + function InfuraProvider() { + _classCallCheck(this, InfuraProvider); + + return _super2.apply(this, arguments); + } + + _createClass(InfuraProvider, [{ + key: "isCommunityResource", + value: function isCommunityResource() { + return this.projectId === defaultProjectId; + } + }], [{ + key: "getWebSocketProvider", + value: function getWebSocketProvider(network, apiKey) { + return new InfuraWebSocketProvider(network, apiKey); + } + }, { + key: "getApiKey", + value: function getApiKey(apiKey) { + var apiKeyObj = { + apiKey: defaultProjectId, + projectId: defaultProjectId, + projectSecret: null + }; + + if (apiKey == null) { + return apiKeyObj; + } + + if (typeof apiKey === "string") { + apiKeyObj.projectId = apiKey; + } else if (apiKey.projectSecret != null) { + logger.assertArgument(typeof apiKey.projectId === "string", "projectSecret requires a projectId", "projectId", apiKey.projectId); + logger.assertArgument(typeof apiKey.projectSecret === "string", "invalid projectSecret", "projectSecret", "[REDACTED]"); + apiKeyObj.projectId = apiKey.projectId; + apiKeyObj.projectSecret = apiKey.projectSecret; + } else if (apiKey.projectId) { + apiKeyObj.projectId = apiKey.projectId; + } + + apiKeyObj.apiKey = apiKeyObj.projectId; + return apiKeyObj; + } + }, { + key: "getUrl", + value: function getUrl(network, apiKey) { + var host = null; + + switch (network ? network.name : "unknown") { + case "homestead": + host = "mainnet.infura.io"; + break; + + case "ropsten": + host = "ropsten.infura.io"; + break; + + case "rinkeby": + host = "rinkeby.infura.io"; + break; + + case "kovan": + host = "kovan.infura.io"; + break; + + case "goerli": + host = "goerli.infura.io"; + break; + + case "matic": + host = "polygon-mainnet.infura.io"; + break; + + case "maticmum": + host = "polygon-mumbai.infura.io"; + break; + + case "optimism": + host = "optimism-mainnet.infura.io"; + break; + + case "optimism-kovan": + host = "optimism-kovan.infura.io"; + break; + + case "arbitrum": + host = "arbitrum-mainnet.infura.io"; + break; + + case "arbitrum-rinkeby": + host = "arbitrum-rinkeby.infura.io"; + break; + + default: + logger.throwError("unsupported network", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_3__["Logger"].errors.INVALID_ARGUMENT, { + argument: "network", + value: network + }); + } + + var connection = { + allowGzip: true, + url: "https:/" + "/" + host + "/v3/" + apiKey.projectId, + throttleCallback: function throttleCallback(attempt, url) { + if (apiKey.projectId === defaultProjectId) { + Object(_formatter__WEBPACK_IMPORTED_MODULE_2__["showThrottleMessage"])(); + } + + return Promise.resolve(true); + } + }; + + if (apiKey.projectSecret != null) { + connection.user = ""; + connection.password = apiKey.projectSecret; + } + + return connection; + } + }]); + + return InfuraProvider; +}(_url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_5__["UrlJsonRpcProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/ipc-provider.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/ipc-provider.js ***! + \*******************************************************************************************/ +/*! exports provided: IpcProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IpcProvider", function() { return IpcProvider; }); + + +var IpcProvider = null; + + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-batch-provider.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-batch-provider.js ***! + \******************************************************************************************************/ +/*! exports provided: JsonRpcBatchProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonRpcBatchProvider", function() { return JsonRpcBatchProvider; }); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var _json_rpc_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js"); +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + + + + // Experimental + +var JsonRpcBatchProvider = /*#__PURE__*/function (_JsonRpcProvider) { + _inherits(JsonRpcBatchProvider, _JsonRpcProvider); + + var _super = _createSuper(JsonRpcBatchProvider); + + function JsonRpcBatchProvider() { + _classCallCheck(this, JsonRpcBatchProvider); + + return _super.apply(this, arguments); + } + + _createClass(JsonRpcBatchProvider, [{ + key: "send", + value: function send(method, params) { + var _this = this; + + var request = { + method: method, + params: params, + id: this._nextId++, + jsonrpc: "2.0" + }; + + if (this._pendingBatch == null) { + this._pendingBatch = []; + } + + var inflightRequest = { + request: request, + resolve: null, + reject: null + }; + var promise = new Promise(function (resolve, reject) { + inflightRequest.resolve = resolve; + inflightRequest.reject = reject; + }); + + this._pendingBatch.push(inflightRequest); + + if (!this._pendingBatchAggregator) { + // Schedule batch for next event loop + short duration + this._pendingBatchAggregator = setTimeout(function () { + // Get teh current batch and clear it, so new requests + // go into the next batch + var batch = _this._pendingBatch; + _this._pendingBatch = null; + _this._pendingBatchAggregator = null; // Get the request as an array of requests + + var request = batch.map(function (inflight) { + return inflight.request; + }); + + _this.emit("debug", { + action: "requestBatch", + request: Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["deepCopy"])(request), + provider: _this + }); + + return Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_1__["fetchJson"])(_this.connection, JSON.stringify(request)).then(function (result) { + _this.emit("debug", { + action: "response", + request: request, + response: result, + provider: _this + }); // For each result, feed it to the correct Promise, depending + // on whether it was a success or error + + + batch.forEach(function (inflightRequest, index) { + var payload = result[index]; + + if (payload.error) { + var error = new Error(payload.error.message); + error.code = payload.error.code; + error.data = payload.error.data; + inflightRequest.reject(error); + } else { + inflightRequest.resolve(payload.result); + } + }); + }, function (error) { + _this.emit("debug", { + action: "response", + error: error, + request: request, + provider: _this + }); + + batch.forEach(function (inflightRequest) { + inflightRequest.reject(error); + }); + }); + }, 10); + } + + return promise; + } + }]); + + return JsonRpcBatchProvider; +}(_json_rpc_provider__WEBPACK_IMPORTED_MODULE_2__["JsonRpcProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js ***! + \************************************************************************************************/ +/*! exports provided: JsonRpcSigner, JsonRpcProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonRpcSigner", function() { return JsonRpcSigner; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonRpcProvider", function() { return JsonRpcProvider; }); +/* harmony import */ var _ethersproject_abstract_signer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/abstract-signer */ "./node_modules/@ethersproject/abstract-signer/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @ethersproject/bytes */ "./node_modules/@ethersproject/bytes/lib.esm/index.js"); +/* harmony import */ var _ethersproject_hash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @ethersproject/hash */ "./node_modules/@ethersproject/hash/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_strings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ethersproject/strings */ "./node_modules/@ethersproject/strings/lib.esm/index.js"); +/* harmony import */ var _ethersproject_transactions__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ethersproject/transactions */ "./node_modules/@ethersproject/transactions/lib.esm/index.js"); +/* harmony import */ var _ethersproject_web__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ethersproject/web */ "./node_modules/@ethersproject/web/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +/* harmony import */ var _base_provider__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./base-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/base-provider.js"); + + +function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"](_version__WEBPACK_IMPORTED_MODULE_9__["version"]); + +var errorGas = ["call", "estimateGas"]; + +function spelunk(value) { + if (value == null) { + return null; + } // These *are* the droids we're looking for. + + + if (typeof value.message === "string" && value.message.match("reverted") && Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["isHexString"])(value.data)) { + return { + message: value.message, + data: value.data + }; + } // Spelunk further... + + + if (_typeof(value) === "object") { + for (var key in value) { + var result = spelunk(value[key]); + + if (result) { + return result; + } + } + + return null; + } // Might be a JSON string we can further descend... + + + if (typeof value === "string") { + try { + return spelunk(JSON.parse(value)); + } catch (error) {} + } + + return null; +} + +function checkError(method, error, params) { + // Undo the "convenience" some nodes are attempting to prevent backwards + // incompatibility; maybe for v6 consider forwarding reverts as errors + if (method === "call") { + var result = spelunk(error); + + if (result) { + return result.data; + } + + logger.throwError("missing revert data in call exception; Transaction reverted without a reason string", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.CALL_EXCEPTION, { + error: error, + data: "0x" + }); + } // @TODO: Should we spelunk for message too? + + + var message = error.message; + + if (error.code === _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.SERVER_ERROR && error.error && typeof error.error.message === "string") { + message = error.error.message; + } else if (typeof error.body === "string") { + message = error.body; + } else if (typeof error.responseText === "string") { + message = error.responseText; + } + + message = (message || "").toLowerCase(); + var transaction = params.transaction || params.signedTransaction; // "insufficient funds for gas * price + value + cost(data)" + + if (message.match(/insufficient funds|base fee exceeds gas limit/)) { + logger.throwError("insufficient funds for intrinsic transaction cost", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.INSUFFICIENT_FUNDS, { + error: error, + method: method, + transaction: transaction + }); + } // "nonce too low" + + + if (message.match(/nonce (is )?too low/)) { + logger.throwError("nonce has already been used", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.NONCE_EXPIRED, { + error: error, + method: method, + transaction: transaction + }); + } // "replacement transaction underpriced" + + + if (message.match(/replacement transaction underpriced/)) { + logger.throwError("replacement fee too low", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.REPLACEMENT_UNDERPRICED, { + error: error, + method: method, + transaction: transaction + }); + } // "replacement transaction underpriced" + + + if (message.match(/only replay-protected/)) { + logger.throwError("legacy pre-eip-155 transactions not supported", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.UNSUPPORTED_OPERATION, { + error: error, + method: method, + transaction: transaction + }); + } + + if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted/)) { + logger.throwError("cannot estimate gas; transaction may fail or may require manual gas limit", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.UNPREDICTABLE_GAS_LIMIT, { + error: error, + method: method, + transaction: transaction + }); + } + + throw error; +} + +function timer(timeout) { + return new Promise(function (resolve) { + setTimeout(resolve, timeout); + }); +} + +function getResult(payload) { + if (payload.error) { + // @TODO: not any + var error = new Error(payload.error.message); + error.code = payload.error.code; + error.data = payload.error.data; + throw error; + } + + return payload.result; +} + +function getLowerCase(value) { + if (value) { + return value.toLowerCase(); + } + + return value; +} + +var _constructorGuard = {}; +var JsonRpcSigner = /*#__PURE__*/function (_Signer) { + _inherits(JsonRpcSigner, _Signer); + + var _super = _createSuper(JsonRpcSigner); + + function JsonRpcSigner(constructorGuard, provider, addressOrIndex) { + var _this; + + _classCallCheck(this, JsonRpcSigner); + + logger.checkNew(this instanceof JsonRpcSigner ? this.constructor : void 0, JsonRpcSigner); + _this = _super.call(this); + + if (constructorGuard !== _constructorGuard) { + throw new Error("do not call the JsonRpcSigner constructor directly; use provider.getSigner"); + } + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(_assertThisInitialized(_this), "provider", provider); + + if (addressOrIndex == null) { + addressOrIndex = 0; + } + + if (typeof addressOrIndex === "string") { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(_assertThisInitialized(_this), "_address", _this.provider.formatter.address(addressOrIndex)); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(_assertThisInitialized(_this), "_index", null); + } else if (typeof addressOrIndex === "number") { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(_assertThisInitialized(_this), "_index", addressOrIndex); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(_assertThisInitialized(_this), "_address", null); + } else { + logger.throwArgumentError("invalid address or index", "addressOrIndex", addressOrIndex); + } + + return _this; + } + + _createClass(JsonRpcSigner, [{ + key: "connect", + value: function connect(provider) { + return logger.throwError("cannot alter JSON-RPC Signer connection", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "connect" + }); + } + }, { + key: "connectUnchecked", + value: function connectUnchecked() { + return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index); + } + }, { + key: "getAddress", + value: function getAddress() { + var _this2 = this; + + if (this._address) { + return Promise.resolve(this._address); + } + + return this.provider.send("eth_accounts", []).then(function (accounts) { + if (accounts.length <= _this2._index) { + logger.throwError("unknown account #" + _this2._index, _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "getAddress" + }); + } + + return _this2.provider.formatter.address(accounts[_this2._index]); + }); + } + }, { + key: "sendUncheckedTransaction", + value: function sendUncheckedTransaction(transaction) { + var _this3 = this; + + transaction = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["shallowCopy"])(transaction); + var fromAddress = this.getAddress().then(function (address) { + if (address) { + address = address.toLowerCase(); + } + + return address; + }); // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user + // wishes to use this, it is easy to specify explicitly, otherwise + // we look it up for them. + + if (transaction.gasLimit == null) { + var estimate = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["shallowCopy"])(transaction); + estimate.from = fromAddress; + transaction.gasLimit = this.provider.estimateGas(estimate); + } + + if (transaction.to != null) { + transaction.to = Promise.resolve(transaction.to).then(function (to) { + return __awaiter(_this3, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var address; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + if (!(to == null)) { + _context.next = 2; + break; + } + + return _context.abrupt("return", null); + + case 2: + _context.next = 4; + return this.provider.resolveName(to); + + case 4: + address = _context.sent; + + if (address == null) { + logger.throwArgumentError("provided ENS name resolves to null", "tx.to", to); + } + + return _context.abrupt("return", address); + + case 7: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + }); + } + + return Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["resolveProperties"])({ + tx: Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["resolveProperties"])(transaction), + sender: fromAddress + }).then(function (_ref) { + var tx = _ref.tx, + sender = _ref.sender; + + if (tx.from != null) { + if (tx.from.toLowerCase() !== sender) { + logger.throwArgumentError("from address mismatch", "transaction", transaction); + } + } else { + tx.from = sender; + } + + var hexTx = _this3.provider.constructor.hexlifyTransaction(tx, { + from: true + }); + + return _this3.provider.send("eth_sendTransaction", [hexTx]).then(function (hash) { + return hash; + }, function (error) { + return checkError("sendTransaction", error, hexTx); + }); + }); + } + }, { + key: "signTransaction", + value: function signTransaction(transaction) { + return logger.throwError("signing transactions is unsupported", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "signTransaction" + }); + } + }, { + key: "sendTransaction", + value: function sendTransaction(transaction) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var _this4 = this; + + var blockNumber, hash; + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + _context3.next = 2; + return this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval); + + case 2: + blockNumber = _context3.sent; + _context3.next = 5; + return this.sendUncheckedTransaction(transaction); + + case 5: + hash = _context3.sent; + _context3.prev = 6; + _context3.next = 9; + return Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_7__["poll"])(function () { + return __awaiter(_this4, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var tx; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + _context2.next = 2; + return this.provider.getTransaction(hash); + + case 2: + tx = _context2.sent; + + if (!(tx === null)) { + _context2.next = 5; + break; + } + + return _context2.abrupt("return", undefined); + + case 5: + return _context2.abrupt("return", this.provider._wrapTransaction(tx, hash, blockNumber)); + + case 6: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + }, { + oncePoll: this.provider + }); + + case 9: + return _context3.abrupt("return", _context3.sent); + + case 12: + _context3.prev = 12; + _context3.t0 = _context3["catch"](6); + _context3.t0.transactionHash = hash; + throw _context3.t0; + + case 16: + case "end": + return _context3.stop(); + } + } + }, _callee3, this, [[6, 12]]); + })); + } + }, { + key: "signMessage", + value: function signMessage(message) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { + var data, address; + return regeneratorRuntime.wrap(function _callee4$(_context4) { + while (1) { + switch (_context4.prev = _context4.next) { + case 0: + data = typeof message === "string" ? Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_5__["toUtf8Bytes"])(message) : message; + _context4.next = 3; + return this.getAddress(); + + case 3: + address = _context4.sent; + _context4.next = 6; + return this.provider.send("personal_sign", [Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(data), address.toLowerCase()]); + + case 6: + return _context4.abrupt("return", _context4.sent); + + case 7: + case "end": + return _context4.stop(); + } + } + }, _callee4, this); + })); + } + }, { + key: "_legacySignMessage", + value: function _legacySignMessage(message) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { + var data, address; + return regeneratorRuntime.wrap(function _callee5$(_context5) { + while (1) { + switch (_context5.prev = _context5.next) { + case 0: + data = typeof message === "string" ? Object(_ethersproject_strings__WEBPACK_IMPORTED_MODULE_5__["toUtf8Bytes"])(message) : message; + _context5.next = 3; + return this.getAddress(); + + case 3: + address = _context5.sent; + _context5.next = 6; + return this.provider.send("eth_sign", [address.toLowerCase(), Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(data)]); + + case 6: + return _context5.abrupt("return", _context5.sent); + + case 7: + case "end": + return _context5.stop(); + } + } + }, _callee5, this); + })); + } + }, { + key: "_signTypedData", + value: function _signTypedData(domain, types, value) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { + var _this5 = this; + + var populated, address; + return regeneratorRuntime.wrap(function _callee6$(_context6) { + while (1) { + switch (_context6.prev = _context6.next) { + case 0: + _context6.next = 2; + return _ethersproject_hash__WEBPACK_IMPORTED_MODULE_3__["_TypedDataEncoder"].resolveNames(domain, types, value, function (name) { + return _this5.provider.resolveName(name); + }); + + case 2: + populated = _context6.sent; + _context6.next = 5; + return this.getAddress(); + + case 5: + address = _context6.sent; + _context6.next = 8; + return this.provider.send("eth_signTypedData_v4", [address.toLowerCase(), JSON.stringify(_ethersproject_hash__WEBPACK_IMPORTED_MODULE_3__["_TypedDataEncoder"].getPayload(populated.domain, types, populated.value))]); + + case 8: + return _context6.abrupt("return", _context6.sent); + + case 9: + case "end": + return _context6.stop(); + } + } + }, _callee6, this); + })); + } + }, { + key: "unlock", + value: function unlock(password) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { + var provider, address; + return regeneratorRuntime.wrap(function _callee7$(_context7) { + while (1) { + switch (_context7.prev = _context7.next) { + case 0: + provider = this.provider; + _context7.next = 3; + return this.getAddress(); + + case 3: + address = _context7.sent; + return _context7.abrupt("return", provider.send("personal_unlockAccount", [address.toLowerCase(), password, null])); + + case 5: + case "end": + return _context7.stop(); + } + } + }, _callee7, this); + })); + } + }]); + + return JsonRpcSigner; +}(_ethersproject_abstract_signer__WEBPACK_IMPORTED_MODULE_0__["Signer"]); + +var UncheckedJsonRpcSigner = /*#__PURE__*/function (_JsonRpcSigner) { + _inherits(UncheckedJsonRpcSigner, _JsonRpcSigner); + + var _super2 = _createSuper(UncheckedJsonRpcSigner); + + function UncheckedJsonRpcSigner() { + _classCallCheck(this, UncheckedJsonRpcSigner); + + return _super2.apply(this, arguments); + } + + _createClass(UncheckedJsonRpcSigner, [{ + key: "sendTransaction", + value: function sendTransaction(transaction) { + var _this6 = this; + + return this.sendUncheckedTransaction(transaction).then(function (hash) { + return { + hash: hash, + nonce: null, + gasLimit: null, + gasPrice: null, + data: null, + value: null, + chainId: null, + confirmations: 0, + from: null, + wait: function wait(confirmations) { + return _this6.provider.waitForTransaction(hash, confirmations); + } + }; + }); + } + }]); + + return UncheckedJsonRpcSigner; +}(JsonRpcSigner); + +var allowedTransactionKeys = { + chainId: true, + data: true, + gasLimit: true, + gasPrice: true, + nonce: true, + to: true, + value: true, + type: true, + accessList: true, + maxFeePerGas: true, + maxPriorityFeePerGas: true +}; +var JsonRpcProvider = /*#__PURE__*/function (_BaseProvider) { + _inherits(JsonRpcProvider, _BaseProvider); + + var _super3 = _createSuper(JsonRpcProvider); + + function JsonRpcProvider(url, network) { + var _this7; + + _classCallCheck(this, JsonRpcProvider); + + logger.checkNew(this instanceof JsonRpcProvider ? this.constructor : void 0, JsonRpcProvider); + var networkOrReady = network; // The network is unknown, query the JSON-RPC for it + + if (networkOrReady == null) { + networkOrReady = new Promise(function (resolve, reject) { + setTimeout(function () { + _this7.detectNetwork().then(function (network) { + resolve(network); + }, function (error) { + reject(error); + }); + }, 0); + }); + } + + _this7 = _super3.call(this, networkOrReady); // Default URL + + if (!url) { + url = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["getStatic"])(_this7.constructor, "defaultUrl")(); + } + + if (typeof url === "string") { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(_assertThisInitialized(_this7), "connection", Object.freeze({ + url: url + })); + } else { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["defineReadOnly"])(_assertThisInitialized(_this7), "connection", Object.freeze(Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["shallowCopy"])(url))); + } + + _this7._nextId = 42; + return _this7; + } + + _createClass(JsonRpcProvider, [{ + key: "_cache", + get: function get() { + if (this._eventLoopCache == null) { + this._eventLoopCache = {}; + } + + return this._eventLoopCache; + } + }, { + key: "detectNetwork", + value: function detectNetwork() { + var _this8 = this; + + if (!this._cache["detectNetwork"]) { + this._cache["detectNetwork"] = this._uncachedDetectNetwork(); // Clear this cache at the beginning of the next event loop + + setTimeout(function () { + _this8._cache["detectNetwork"] = null; + }, 0); + } + + return this._cache["detectNetwork"]; + } + }, { + key: "_uncachedDetectNetwork", + value: function _uncachedDetectNetwork() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { + var chainId, getNetwork; + return regeneratorRuntime.wrap(function _callee8$(_context8) { + while (1) { + switch (_context8.prev = _context8.next) { + case 0: + _context8.next = 2; + return timer(0); + + case 2: + chainId = null; + _context8.prev = 3; + _context8.next = 6; + return this.send("eth_chainId", []); + + case 6: + chainId = _context8.sent; + _context8.next = 19; + break; + + case 9: + _context8.prev = 9; + _context8.t0 = _context8["catch"](3); + _context8.prev = 11; + _context8.next = 14; + return this.send("net_version", []); + + case 14: + chainId = _context8.sent; + _context8.next = 19; + break; + + case 17: + _context8.prev = 17; + _context8.t1 = _context8["catch"](11); + + case 19: + if (!(chainId != null)) { + _context8.next = 28; + break; + } + + getNetwork = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["getStatic"])(this.constructor, "getNetwork"); + _context8.prev = 21; + return _context8.abrupt("return", getNetwork(_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(chainId).toNumber())); + + case 25: + _context8.prev = 25; + _context8.t2 = _context8["catch"](21); + return _context8.abrupt("return", logger.throwError("could not detect network", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.NETWORK_ERROR, { + chainId: chainId, + event: "invalidNetwork", + serverError: _context8.t2 + })); + + case 28: + return _context8.abrupt("return", logger.throwError("could not detect network", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.NETWORK_ERROR, { + event: "noNetwork" + })); + + case 29: + case "end": + return _context8.stop(); + } + } + }, _callee8, this, [[3, 9], [11, 17], [21, 25]]); + })); + } + }, { + key: "getSigner", + value: function getSigner(addressOrIndex) { + return new JsonRpcSigner(_constructorGuard, this, addressOrIndex); + } + }, { + key: "getUncheckedSigner", + value: function getUncheckedSigner(addressOrIndex) { + return this.getSigner(addressOrIndex).connectUnchecked(); + } + }, { + key: "listAccounts", + value: function listAccounts() { + var _this9 = this; + + return this.send("eth_accounts", []).then(function (accounts) { + return accounts.map(function (a) { + return _this9.formatter.address(a); + }); + }); + } + }, { + key: "send", + value: function send(method, params) { + var _this10 = this; + + var request = { + method: method, + params: params, + id: this._nextId++, + jsonrpc: "2.0" + }; + this.emit("debug", { + action: "request", + request: Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["deepCopy"])(request), + provider: this + }); // We can expand this in the future to any call, but for now these + // are the biggest wins and do not require any serializing parameters. + + var cache = ["eth_chainId", "eth_blockNumber"].indexOf(method) >= 0; + + if (cache && this._cache[method]) { + return this._cache[method]; + } + + var result = Object(_ethersproject_web__WEBPACK_IMPORTED_MODULE_7__["fetchJson"])(this.connection, JSON.stringify(request), getResult).then(function (result) { + _this10.emit("debug", { + action: "response", + request: request, + response: result, + provider: _this10 + }); + + return result; + }, function (error) { + _this10.emit("debug", { + action: "response", + error: error, + request: request, + provider: _this10 + }); + + throw error; + }); // Cache the fetch, but clear it on the next event loop + + if (cache) { + this._cache[method] = result; + setTimeout(function () { + _this10._cache[method] = null; + }, 0); + } + + return result; + } + }, { + key: "prepareRequest", + value: function prepareRequest(method, params) { + switch (method) { + case "getBlockNumber": + return ["eth_blockNumber", []]; + + case "getGasPrice": + return ["eth_gasPrice", []]; + + case "getBalance": + return ["eth_getBalance", [getLowerCase(params.address), params.blockTag]]; + + case "getTransactionCount": + return ["eth_getTransactionCount", [getLowerCase(params.address), params.blockTag]]; + + case "getCode": + return ["eth_getCode", [getLowerCase(params.address), params.blockTag]]; + + case "getStorageAt": + return ["eth_getStorageAt", [getLowerCase(params.address), params.position, params.blockTag]]; + + case "sendTransaction": + return ["eth_sendRawTransaction", [params.signedTransaction]]; + + case "getBlock": + if (params.blockTag) { + return ["eth_getBlockByNumber", [params.blockTag, !!params.includeTransactions]]; + } else if (params.blockHash) { + return ["eth_getBlockByHash", [params.blockHash, !!params.includeTransactions]]; + } + + return null; + + case "getTransaction": + return ["eth_getTransactionByHash", [params.transactionHash]]; + + case "getTransactionReceipt": + return ["eth_getTransactionReceipt", [params.transactionHash]]; + + case "call": + { + var hexlifyTransaction = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["getStatic"])(this.constructor, "hexlifyTransaction"); + return ["eth_call", [hexlifyTransaction(params.transaction, { + from: true + }), params.blockTag]]; + } + + case "estimateGas": + { + var _hexlifyTransaction = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["getStatic"])(this.constructor, "hexlifyTransaction"); + + return ["eth_estimateGas", [_hexlifyTransaction(params.transaction, { + from: true + })]]; + } + + case "getLogs": + if (params.filter && params.filter.address != null) { + params.filter.address = getLowerCase(params.filter.address); + } + + return ["eth_getLogs", [params.filter]]; + + default: + break; + } + + return null; + } + }, { + key: "perform", + value: function perform(method, params) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee9() { + var tx, feeData, args; + return regeneratorRuntime.wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + if (!(method === "call" || method === "estimateGas")) { + _context9.next = 8; + break; + } + + tx = params.transaction; + + if (!(tx && tx.type != null && _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_1__["BigNumber"].from(tx.type).isZero())) { + _context9.next = 8; + break; + } + + if (!(tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null)) { + _context9.next = 8; + break; + } + + _context9.next = 6; + return this.getFeeData(); + + case 6: + feeData = _context9.sent; + + if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) { + // Network doesn't know about EIP-1559 (and hence type) + params = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["shallowCopy"])(params); + params.transaction = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["shallowCopy"])(tx); + delete params.transaction.type; + } + + case 8: + args = this.prepareRequest(method, params); + + if (args == null) { + logger.throwError(method + " not implemented", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_8__["Logger"].errors.NOT_IMPLEMENTED, { + operation: method + }); + } + + _context9.prev = 10; + _context9.next = 13; + return this.send(args[0], args[1]); + + case 13: + return _context9.abrupt("return", _context9.sent); + + case 16: + _context9.prev = 16; + _context9.t0 = _context9["catch"](10); + return _context9.abrupt("return", checkError(method, _context9.t0, params)); + + case 19: + case "end": + return _context9.stop(); + } + } + }, _callee9, this, [[10, 16]]); + })); + } + }, { + key: "_startEvent", + value: function _startEvent(event) { + if (event.tag === "pending") { + this._startPending(); + } + + _get(_getPrototypeOf(JsonRpcProvider.prototype), "_startEvent", this).call(this, event); + } + }, { + key: "_startPending", + value: function _startPending() { + if (this._pendingFilter != null) { + return; + } + + var self = this; + var pendingFilter = this.send("eth_newPendingTransactionFilter", []); + this._pendingFilter = pendingFilter; + pendingFilter.then(function (filterId) { + function poll() { + self.send("eth_getFilterChanges", [filterId]).then(function (hashes) { + if (self._pendingFilter != pendingFilter) { + return null; + } + + var seq = Promise.resolve(); + hashes.forEach(function (hash) { + // @TODO: This should be garbage collected at some point... How? When? + self._emitted["t:" + hash.toLowerCase()] = "pending"; + seq = seq.then(function () { + return self.getTransaction(hash).then(function (tx) { + self.emit("pending", tx); + return null; + }); + }); + }); + return seq.then(function () { + return timer(1000); + }); + }).then(function () { + if (self._pendingFilter != pendingFilter) { + self.send("eth_uninstallFilter", [filterId]); + return; + } + + setTimeout(function () { + poll(); + }, 0); + return null; + })["catch"](function (error) {}); + } + + poll(); + return filterId; + })["catch"](function (error) {}); + } + }, { + key: "_stopEvent", + value: function _stopEvent(event) { + if (event.tag === "pending" && this.listenerCount("pending") === 0) { + this._pendingFilter = null; + } + + _get(_getPrototypeOf(JsonRpcProvider.prototype), "_stopEvent", this).call(this, event); + } // Convert an ethers.js transaction into a JSON-RPC transaction + // - gasLimit => gas + // - All values hexlified + // - All numeric values zero-striped + // - All addresses are lowercased + // NOTE: This allows a TransactionRequest, but all values should be resolved + // before this is called + // @TODO: This will likely be removed in future versions and prepareRequest + // will be the preferred method for this. + + }], [{ + key: "defaultUrl", + value: function defaultUrl() { + return "http:/\/localhost:8545"; + } + }, { + key: "hexlifyTransaction", + value: function hexlifyTransaction(transaction, allowExtra) { + // Check only allowed properties are given + var allowed = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["shallowCopy"])(allowedTransactionKeys); + + if (allowExtra) { + for (var key in allowExtra) { + if (allowExtra[key]) { + allowed[key] = true; + } + } + } + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_4__["checkProperties"])(transaction, allowed); + var result = {}; // JSON-RPC now requires numeric values to be "quantity" values + + ["chainId", "gasLimit", "gasPrice", "type", "maxFeePerGas", "maxPriorityFeePerGas", "nonce", "value"].forEach(function (key) { + if (transaction[key] == null) { + return; + } + + var value = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexValue"])(transaction[key]); + + if (key === "gasLimit") { + key = "gas"; + } + + result[key] = value; + }); + ["from", "to", "data"].forEach(function (key) { + if (transaction[key] == null) { + return; + } + + result[key] = Object(_ethersproject_bytes__WEBPACK_IMPORTED_MODULE_2__["hexlify"])(transaction[key]); + }); + + if (transaction.accessList) { + result["accessList"] = Object(_ethersproject_transactions__WEBPACK_IMPORTED_MODULE_6__["accessListify"])(transaction.accessList); + } + + return result; + } + }]); + + return JsonRpcProvider; +}(_base_provider__WEBPACK_IMPORTED_MODULE_10__["BaseProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/nodesmith-provider.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/nodesmith-provider.js ***! + \*************************************************************************************************/ +/*! exports provided: NodesmithProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NodesmithProvider", function() { return NodesmithProvider; }); +/* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +/* istanbul ignore file */ + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); // Special API key provided by Nodesmith for ethers.js + +var defaultApiKey = "ETHERS_JS_SHARED"; +var NodesmithProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) { + _inherits(NodesmithProvider, _UrlJsonRpcProvider); + + var _super = _createSuper(NodesmithProvider); + + function NodesmithProvider() { + _classCallCheck(this, NodesmithProvider); + + return _super.apply(this, arguments); + } + + _createClass(NodesmithProvider, null, [{ + key: "getApiKey", + value: function getApiKey(apiKey) { + if (apiKey && typeof apiKey !== "string") { + logger.throwArgumentError("invalid apiKey", "apiKey", apiKey); + } + + return apiKey || defaultApiKey; + } + }, { + key: "getUrl", + value: function getUrl(network, apiKey) { + logger.warn("NodeSmith will be discontinued on 2019-12-20; please migrate to another platform."); + var host = null; + + switch (network.name) { + case "homestead": + host = "https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc"; + break; + + case "ropsten": + host = "https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc"; + break; + + case "rinkeby": + host = "https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc"; + break; + + case "goerli": + host = "https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc"; + break; + + case "kovan": + host = "https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc"; + break; + + default: + logger.throwArgumentError("unsupported network", "network", arguments[0]); + } + + return host + "?apiKey=" + apiKey; + } + }]); + + return NodesmithProvider; +}(_url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_0__["UrlJsonRpcProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/pocket-provider.js": +/*!**********************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/pocket-provider.js ***! + \**********************************************************************************************/ +/*! exports provided: PocketProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PocketProvider", function() { return PocketProvider; }); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +/* harmony import */ var _url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./url-json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); + // These are load-balancer-based application IDs + +var defaultApplicationIds = { + homestead: "6004bcd10040261633ade990", + ropsten: "6004bd4d0040261633ade991", + rinkeby: "6004bda20040261633ade994", + goerli: "6004bd860040261633ade992" +}; +var PocketProvider = /*#__PURE__*/function (_UrlJsonRpcProvider) { + _inherits(PocketProvider, _UrlJsonRpcProvider); + + var _super = _createSuper(PocketProvider); + + function PocketProvider(network, apiKey) { + _classCallCheck(this, PocketProvider); + + // We need a bit of creativity in the constructor because + // Pocket uses different default API keys based on the network + if (apiKey == null) { + var n = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["getStatic"])(this instanceof PocketProvider ? this.constructor : void 0, "getNetwork")(network); + + if (n) { + var applicationId = defaultApplicationIds[n.name]; + + if (applicationId) { + apiKey = { + applicationId: applicationId, + loadBalancer: true + }; + } + } // If there was any issue above, we don't know this network + + + if (apiKey == null) { + logger.throwError("unsupported network", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.INVALID_ARGUMENT, { + argument: "network", + value: network + }); + } + } + + return _super.call(this, network, apiKey); + } + + _createClass(PocketProvider, [{ + key: "isCommunityResource", + value: function isCommunityResource() { + return this.applicationId === defaultApplicationIds[this.network.name]; + } + }], [{ + key: "getApiKey", + value: function getApiKey(apiKey) { + // Most API Providers allow null to get the default configuration, but + // Pocket requires the network to decide the default provider, so we + // rely on hijacking the constructor to add a sensible default for us + if (apiKey == null) { + logger.throwArgumentError("PocketProvider.getApiKey does not support null apiKey", "apiKey", apiKey); + } + + var apiKeyObj = { + applicationId: null, + loadBalancer: false, + applicationSecretKey: null + }; // Parse applicationId and applicationSecretKey + + if (typeof apiKey === "string") { + apiKeyObj.applicationId = apiKey; + } else if (apiKey.applicationSecretKey != null) { + logger.assertArgument(typeof apiKey.applicationId === "string", "applicationSecretKey requires an applicationId", "applicationId", apiKey.applicationId); + logger.assertArgument(typeof apiKey.applicationSecretKey === "string", "invalid applicationSecretKey", "applicationSecretKey", "[REDACTED]"); + apiKeyObj.applicationId = apiKey.applicationId; + apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey; + apiKeyObj.loadBalancer = !!apiKey.loadBalancer; + } else if (apiKey.applicationId) { + logger.assertArgument(typeof apiKey.applicationId === "string", "apiKey.applicationId must be a string", "apiKey.applicationId", apiKey.applicationId); + apiKeyObj.applicationId = apiKey.applicationId; + apiKeyObj.loadBalancer = !!apiKey.loadBalancer; + } else { + logger.throwArgumentError("unsupported PocketProvider apiKey", "apiKey", apiKey); + } + + return apiKeyObj; + } + }, { + key: "getUrl", + value: function getUrl(network, apiKey) { + var host = null; + + switch (network ? network.name : "unknown") { + case "homestead": + host = "eth-mainnet.gateway.pokt.network"; + break; + + case "ropsten": + host = "eth-ropsten.gateway.pokt.network"; + break; + + case "rinkeby": + host = "eth-rinkeby.gateway.pokt.network"; + break; + + case "goerli": + host = "eth-goerli.gateway.pokt.network"; + break; + + default: + logger.throwError("unsupported network", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.INVALID_ARGUMENT, { + argument: "network", + value: network + }); + } + + var url = null; + + if (apiKey.loadBalancer) { + url = "https://".concat(host, "/v1/lb/").concat(apiKey.applicationId); + } else { + url = "https://".concat(host, "/v1/").concat(apiKey.applicationId); + } + + var connection = { + url: url + }; // Initialize empty headers + + connection.headers = {}; // Apply application secret key + + if (apiKey.applicationSecretKey != null) { + connection.user = ""; + connection.password = apiKey.applicationSecretKey; + } + + return connection; + } + }]); + + return PocketProvider; +}(_url_json_rpc_provider__WEBPACK_IMPORTED_MODULE_3__["UrlJsonRpcProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js ***! + \****************************************************************************************************/ +/*! exports provided: StaticJsonRpcProvider, UrlJsonRpcProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "StaticJsonRpcProvider", function() { return StaticJsonRpcProvider; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "UrlJsonRpcProvider", function() { return UrlJsonRpcProvider; }); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +/* harmony import */ var _json_rpc_provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); + // A StaticJsonRpcProvider is useful when you *know* for certain that +// the backend will never change, as it never calls eth_chainId to +// verify its backend. However, if the backend does change, the effects +// are undefined and may include: +// - inconsistent results +// - locking up the UI +// - block skew warnings +// - wrong results +// If the network is not explicit (i.e. auto-detection is expected), the +// node MUST be running and available to respond to requests BEFORE this +// is instantiated. + +var StaticJsonRpcProvider = /*#__PURE__*/function (_JsonRpcProvider) { + _inherits(StaticJsonRpcProvider, _JsonRpcProvider); + + var _super2 = _createSuper(StaticJsonRpcProvider); + + function StaticJsonRpcProvider() { + _classCallCheck(this, StaticJsonRpcProvider); + + return _super2.apply(this, arguments); + } + + _createClass(StaticJsonRpcProvider, [{ + key: "detectNetwork", + value: function detectNetwork() { + var _this = this; + + var _super = Object.create(null, { + detectNetwork: { + get: function get() { + return _get(_getPrototypeOf(StaticJsonRpcProvider.prototype), "detectNetwork", _this); + } + } + }); + + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var network; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + network = this.network; + + if (!(network == null)) { + _context.next = 7; + break; + } + + _context.next = 4; + return _super.detectNetwork.call(this); + + case 4: + network = _context.sent; + + if (!network) { + logger.throwError("no network detected", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNKNOWN_ERROR, {}); + } // If still not set, set it + + + if (this._network == null) { + // A static network does not support "any" + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(this, "_network", network); + this.emit("network", network, null); + } + + case 7: + return _context.abrupt("return", network); + + case 8: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + } + }]); + + return StaticJsonRpcProvider; +}(_json_rpc_provider__WEBPACK_IMPORTED_MODULE_3__["JsonRpcProvider"]); +var UrlJsonRpcProvider = /*#__PURE__*/function (_StaticJsonRpcProvide) { + _inherits(UrlJsonRpcProvider, _StaticJsonRpcProvide); + + var _super3 = _createSuper(UrlJsonRpcProvider); + + function UrlJsonRpcProvider(network, apiKey) { + var _this2; + + _classCallCheck(this, UrlJsonRpcProvider); + + logger.checkAbstract(this instanceof UrlJsonRpcProvider ? this.constructor : void 0, UrlJsonRpcProvider); // Normalize the Network and API Key + + network = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["getStatic"])(this instanceof UrlJsonRpcProvider ? this.constructor : void 0, "getNetwork")(network); + apiKey = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["getStatic"])(this instanceof UrlJsonRpcProvider ? this.constructor : void 0, "getApiKey")(apiKey); + var connection = Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["getStatic"])(this instanceof UrlJsonRpcProvider ? this.constructor : void 0, "getUrl")(network, apiKey); + _this2 = _super3.call(this, connection, network); + + if (typeof apiKey === "string") { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this2), "apiKey", apiKey); + } else if (apiKey != null) { + Object.keys(apiKey).forEach(function (key) { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this2), key, apiKey[key]); + }); + } + + return _this2; + } + + _createClass(UrlJsonRpcProvider, [{ + key: "_startPending", + value: function _startPending() { + logger.warn("WARNING: API provider does not support pending filters"); + } + }, { + key: "isCommunityResource", + value: function isCommunityResource() { + return false; + } + }, { + key: "getSigner", + value: function getSigner(address) { + return logger.throwError("API provider does not support signing", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "getSigner" + }); + } + }, { + key: "listAccounts", + value: function listAccounts() { + return Promise.resolve([]); + } // Return a defaultApiKey if null, otherwise validate the API key + + }], [{ + key: "getApiKey", + value: function getApiKey(apiKey) { + return apiKey; + } // Returns the url or connection for the given network and API key. The + // API key will have been sanitized by the getApiKey first, so any validation + // or transformations can be done there. + + }, { + key: "getUrl", + value: function getUrl(network, apiKey) { + return logger.throwError("not implemented; sub-classes must override getUrl", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"].errors.NOT_IMPLEMENTED, { + operation: "getUrl" + }); + } + }]); + + return UrlJsonRpcProvider; +}(StaticJsonRpcProvider); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/web3-provider.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/web3-provider.js ***! + \********************************************************************************************/ +/*! exports provided: Web3Provider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Web3Provider", function() { return Web3Provider; }); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); +/* harmony import */ var _json_rpc_provider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_1__["Logger"](_version__WEBPACK_IMPORTED_MODULE_2__["version"]); + +var _nextId = 1; + +function buildWeb3LegacyFetcher(provider, sendFunc) { + var fetcher = "Web3LegacyFetcher"; + return function (method, params) { + var _this = this; + + var request = { + method: method, + params: params, + id: _nextId++, + jsonrpc: "2.0" + }; + return new Promise(function (resolve, reject) { + _this.emit("debug", { + action: "request", + fetcher: fetcher, + request: Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["deepCopy"])(request), + provider: _this + }); + + sendFunc(request, function (error, response) { + if (error) { + _this.emit("debug", { + action: "response", + fetcher: fetcher, + error: error, + request: request, + provider: _this + }); + + return reject(error); + } + + _this.emit("debug", { + action: "response", + fetcher: fetcher, + request: request, + response: response, + provider: _this + }); + + if (response.error) { + var _error = new Error(response.error.message); + + _error.code = response.error.code; + _error.data = response.error.data; + return reject(_error); + } + + resolve(response.result); + }); + }); + }; +} + +function buildEip1193Fetcher(provider) { + return function (method, params) { + var _this2 = this; + + if (params == null) { + params = []; + } + + var request = { + method: method, + params: params + }; + this.emit("debug", { + action: "request", + fetcher: "Eip1193Fetcher", + request: Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["deepCopy"])(request), + provider: this + }); + return provider.request(request).then(function (response) { + _this2.emit("debug", { + action: "response", + fetcher: "Eip1193Fetcher", + request: request, + response: response, + provider: _this2 + }); + + return response; + }, function (error) { + _this2.emit("debug", { + action: "response", + fetcher: "Eip1193Fetcher", + request: request, + error: error, + provider: _this2 + }); + + throw error; + }); + }; +} + +var Web3Provider = /*#__PURE__*/function (_JsonRpcProvider) { + _inherits(Web3Provider, _JsonRpcProvider); + + var _super = _createSuper(Web3Provider); + + function Web3Provider(provider, network) { + var _this3; + + _classCallCheck(this, Web3Provider); + + logger.checkNew(this instanceof Web3Provider ? this.constructor : void 0, Web3Provider); + + if (provider == null) { + logger.throwArgumentError("missing provider", "provider", provider); + } + + var path = null; + var jsonRpcFetchFunc = null; + var subprovider = null; + + if (typeof provider === "function") { + path = "unknown:"; + jsonRpcFetchFunc = provider; + } else { + path = provider.host || provider.path || ""; + + if (!path && provider.isMetaMask) { + path = "metamask"; + } + + subprovider = provider; + + if (provider.request) { + if (path === "") { + path = "eip-1193:"; + } + + jsonRpcFetchFunc = buildEip1193Fetcher(provider); + } else if (provider.sendAsync) { + jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider)); + } else if (provider.send) { + jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider)); + } else { + logger.throwArgumentError("unsupported provider", "provider", provider); + } + + if (!path) { + path = "unknown:"; + } + } + + _this3 = _super.call(this, path, network); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this3), "jsonRpcFetchFunc", jsonRpcFetchFunc); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_0__["defineReadOnly"])(_assertThisInitialized(_this3), "provider", subprovider); + return _this3; + } + + _createClass(Web3Provider, [{ + key: "send", + value: function send(method, params) { + return this.jsonRpcFetchFunc(method, params); + } + }]); + + return Web3Provider; +}(_json_rpc_provider__WEBPACK_IMPORTED_MODULE_3__["JsonRpcProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/websocket-provider.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/websocket-provider.js ***! + \*************************************************************************************************/ +/*! exports provided: WebSocketProvider */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebSocketProvider", function() { return WebSocketProvider; }); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/bignumber */ "./node_modules/@ethersproject/bignumber/lib.esm/index.js"); +/* harmony import */ var _ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/properties */ "./node_modules/@ethersproject/properties/lib.esm/index.js"); +/* harmony import */ var _json_rpc_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./json-rpc-provider */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js"); +/* harmony import */ var _ws__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ws */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/ws.js"); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); + + +function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } + +function _get() { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +var __awaiter = undefined && undefined.__awaiter || function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P ? value : new P(function (resolve) { + resolve(value); + }); + } + + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; + + + + + + + +var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"](_version__WEBPACK_IMPORTED_MODULE_5__["version"]); +/** + * Notes: + * + * This provider differs a bit from the polling providers. One main + * difference is how it handles consistency. The polling providers + * will stall responses to ensure a consistent state, while this + * WebSocket provider assumes the connected backend will manage this. + * + * For example, if a polling provider emits an event which indicates + * the event occurred in blockhash XXX, a call to fetch that block by + * its hash XXX, if not present will retry until it is present. This + * can occur when querying a pool of nodes that are mildly out of sync + * with each other. + */ + +var NextId = 1; // For more info about the Real-time Event API see: +// https://geth.ethereum.org/docs/rpc/pubsub + +var WebSocketProvider = /*#__PURE__*/function (_JsonRpcProvider) { + _inherits(WebSocketProvider, _JsonRpcProvider); + + var _super = _createSuper(WebSocketProvider); + + function WebSocketProvider(url, network) { + var _thisSuper, _this; + + _classCallCheck(this, WebSocketProvider); + + // This will be added in the future; please open an issue to expedite + if (network === "any") { + logger.throwError("WebSocketProvider does not support 'any' network yet", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "network:any" + }); + } + + if (typeof url === "string") { + _this = _super.call(this, url, network); + } else { + _this = _super.call(this, "_websocket", network); + } + + _this._pollingInterval = -1; + _this._wsReady = false; + + if (typeof url === "string") { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(_assertThisInitialized(_this), "_websocket", new _ws__WEBPACK_IMPORTED_MODULE_3__["WebSocket"](_this.connection.url)); + } else { + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(_assertThisInitialized(_this), "_websocket", url); + } + + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(_assertThisInitialized(_this), "_requests", {}); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(_assertThisInitialized(_this), "_subs", {}); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(_assertThisInitialized(_this), "_subIds", {}); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(_assertThisInitialized(_this), "_detectNetwork", _get((_thisSuper = _assertThisInitialized(_this), _getPrototypeOf(WebSocketProvider.prototype)), "detectNetwork", _thisSuper).call(_thisSuper)); // Stall sending requests until the socket is open... + + _this.websocket.onopen = function () { + _this._wsReady = true; + Object.keys(_this._requests).forEach(function (id) { + _this.websocket.send(_this._requests[id].payload); + }); + }; + + _this.websocket.onmessage = function (messageEvent) { + var data = messageEvent.data; + var result = JSON.parse(data); + + if (result.id != null) { + var id = String(result.id); + var request = _this._requests[id]; + delete _this._requests[id]; + + if (result.result !== undefined) { + request.callback(null, result.result); + + _this.emit("debug", { + action: "response", + request: JSON.parse(request.payload), + response: result.result, + provider: _assertThisInitialized(_this) + }); + } else { + var error = null; + + if (result.error) { + error = new Error(result.error.message || "unknown error"); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(error, "code", result.error.code || null); + Object(_ethersproject_properties__WEBPACK_IMPORTED_MODULE_1__["defineReadOnly"])(error, "response", data); + } else { + error = new Error("unknown error"); + } + + request.callback(error, undefined); + + _this.emit("debug", { + action: "response", + error: error, + request: JSON.parse(request.payload), + provider: _assertThisInitialized(_this) + }); + } + } else if (result.method === "eth_subscription") { + // Subscription... + var sub = _this._subs[result.params.subscription]; + + if (sub) { + //this.emit.apply(this, ); + sub.processFunc(result.params.result); + } + } else { + console.warn("this should not happen"); + } + }; // This Provider does not actually poll, but we want to trigger + // poll events for things that depend on them (like stalling for + // block and transaction lookups) + + + var fauxPoll = setInterval(function () { + _this.emit("poll"); + }, 1000); + + if (fauxPoll.unref) { + fauxPoll.unref(); + } + + return _possibleConstructorReturn(_this); + } // Cannot narrow the type of _websocket, as that is not backwards compatible + // so we add a getter and let the WebSocket be a public API. + + + _createClass(WebSocketProvider, [{ + key: "websocket", + get: function get() { + return this._websocket; + } + }, { + key: "detectNetwork", + value: function detectNetwork() { + return this._detectNetwork; + } + }, { + key: "pollingInterval", + get: function get() { + return 0; + }, + set: function set(value) { + logger.throwError("cannot set polling interval on WebSocketProvider", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "setPollingInterval" + }); + } + }, { + key: "resetEventsBlock", + value: function resetEventsBlock(blockNumber) { + logger.throwError("cannot reset events block on WebSocketProvider", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "resetEventBlock" + }); + } + }, { + key: "poll", + value: function poll() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + return _context.abrupt("return", null); + + case 1: + case "end": + return _context.stop(); + } + } + }, _callee); + })); + } + }, { + key: "polling", + set: function set(value) { + if (!value) { + return; + } + + logger.throwError("cannot set polling on WebSocketProvider", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_4__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "setPolling" + }); + } + }, { + key: "send", + value: function send(method, params) { + var _this2 = this; + + var rid = NextId++; + return new Promise(function (resolve, reject) { + function callback(error, result) { + if (error) { + return reject(error); + } + + return resolve(result); + } + + var payload = JSON.stringify({ + method: method, + params: params, + id: rid, + jsonrpc: "2.0" + }); + + _this2.emit("debug", { + action: "request", + request: JSON.parse(payload), + provider: _this2 + }); + + _this2._requests[String(rid)] = { + callback: callback, + payload: payload + }; + + if (_this2._wsReady) { + _this2.websocket.send(payload); + } + }); + } + }, { + key: "_subscribe", + value: function _subscribe(tag, param, processFunc) { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var _this3 = this; + + var subIdPromise, subId; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + subIdPromise = this._subIds[tag]; + + if (subIdPromise == null) { + subIdPromise = Promise.all(param).then(function (param) { + return _this3.send("eth_subscribe", param); + }); + this._subIds[tag] = subIdPromise; + } + + _context2.next = 4; + return subIdPromise; + + case 4: + subId = _context2.sent; + this._subs[subId] = { + tag: tag, + processFunc: processFunc + }; + + case 6: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + } + }, { + key: "_startEvent", + value: function _startEvent(event) { + var _this4 = this; + + switch (event.type) { + case "block": + this._subscribe("block", ["newHeads"], function (result) { + var blockNumber = _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__["BigNumber"].from(result.number).toNumber(); + _this4._emitted.block = blockNumber; + + _this4.emit("block", blockNumber); + }); + + break; + + case "pending": + this._subscribe("pending", ["newPendingTransactions"], function (result) { + _this4.emit("pending", result); + }); + + break; + + case "filter": + this._subscribe(event.tag, ["logs", this._getFilter(event.filter)], function (result) { + if (result.removed == null) { + result.removed = false; + } + + _this4.emit(event.filter, _this4.formatter.filterLog(result)); + }); + + break; + + case "tx": + { + var emitReceipt = function emitReceipt(event) { + var hash = event.hash; + + _this4.getTransactionReceipt(hash).then(function (receipt) { + if (!receipt) { + return; + } + + _this4.emit(hash, receipt); + }); + }; // In case it is already mined + + + emitReceipt(event); // To keep things simple, we start up a single newHeads subscription + // to keep an eye out for transactions we are watching for. + // Starting a subscription for an event (i.e. "tx") that is already + // running is (basically) a nop. + + this._subscribe("tx", ["newHeads"], function (result) { + _this4._events.filter(function (e) { + return e.type === "tx"; + }).forEach(emitReceipt); + }); + + break; + } + // Nothing is needed + + case "debug": + case "poll": + case "willPoll": + case "didPoll": + case "error": + break; + + default: + console.log("unhandled:", event); + break; + } + } + }, { + key: "_stopEvent", + value: function _stopEvent(event) { + var _this5 = this; + + var tag = event.tag; + + if (event.type === "tx") { + // There are remaining transaction event listeners + if (this._events.filter(function (e) { + return e.type === "tx"; + }).length) { + return; + } + + tag = "tx"; + } else if (this.listenerCount(event.event)) { + // There are remaining event listeners + return; + } + + var subId = this._subIds[tag]; + + if (!subId) { + return; + } + + delete this._subIds[tag]; + subId.then(function (subId) { + if (!_this5._subs[subId]) { + return; + } + + delete _this5._subs[subId]; + + _this5.send("eth_unsubscribe", [subId]); + }); + } + }, { + key: "destroy", + value: function destroy() { + return __awaiter(this, void 0, void 0, /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + var _this6 = this; + + return regeneratorRuntime.wrap(function _callee3$(_context3) { + while (1) { + switch (_context3.prev = _context3.next) { + case 0: + if (!(this.websocket.readyState === _ws__WEBPACK_IMPORTED_MODULE_3__["WebSocket"].CONNECTING)) { + _context3.next = 3; + break; + } + + _context3.next = 3; + return new Promise(function (resolve) { + _this6.websocket.onopen = function () { + resolve(true); + }; + + _this6.websocket.onerror = function () { + resolve(false); + }; + }); + + case 3: + // Hangup + // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes + this.websocket.close(1000); + + case 4: + case "end": + return _context3.stop(); + } + } + }, _callee3, this); + })); + } + }], [{ + key: "defaultUrl", + value: function defaultUrl() { + return "ws:/\/localhost:8546"; + } + }]); + + return WebSocketProvider; +}(_json_rpc_provider__WEBPACK_IMPORTED_MODULE_2__["JsonRpcProvider"]); + +/***/ }), + +/***/ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/ws.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/ws.js ***! + \*********************************************************************************/ +/*! exports provided: WebSocket */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WebSocket", function() { return WS; }); +/* harmony import */ var _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @ethersproject/logger */ "./node_modules/@ethersproject/logger/lib.esm/index.js"); +/* harmony import */ var _version__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_version */ "./node_modules/ethers/node_modules/@ethersproject/providers/lib.esm/_version.js"); + + + + +var WS = null; + +try { + WS = WebSocket; + + if (WS == null) { + throw new Error("inject please"); + } +} catch (error) { + var logger = new _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__["Logger"](_version__WEBPACK_IMPORTED_MODULE_1__["version"]); + + WS = function WS() { + logger.throwError("WebSockets not supported in this environment", _ethersproject_logger__WEBPACK_IMPORTED_MODULE_0__["Logger"].errors.UNSUPPORTED_OPERATION, { + operation: "new WebSocket()" + }); + }; +} //export default WS; +//module.exports = WS; + + + + /***/ }), /***/ "./node_modules/eventemitter3/index.js": @@ -55635,6 +87121,735 @@ exports.stringifyUrl = function (input, options) { /***/ }), +/***/ "./node_modules/regenerator-runtime/runtime.js": +/*!*****************************************************!*\ + !*** ./node_modules/regenerator-runtime/runtime.js ***! + \*****************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +/* WEBPACK VAR INJECTION */(function(global, module) {function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } + +/** + * Copyright (c) 2014, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * https://raw.github.com/facebook/regenerator/master/LICENSE file. An + * additional grant of patent rights can be found in the PATENTS file in + * the same directory. + */ +!function (global) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + var inModule = ( false ? undefined : _typeof(module)) === "object"; + var runtime = global.regeneratorRuntime; + + if (runtime) { + if (inModule) { + // If regeneratorRuntime is defined globally and we're in a module, + // make the exports object identical to regeneratorRuntime. + module.exports = runtime; + } // Don't bother evaluating the rest of this file if the runtime was + // already defined globally. + + + return; + } // Define the runtime globally (as expected by generated code) as either + // module.exports (if we're in a module) or a new, empty object. + + + runtime = global.regeneratorRuntime = inModule ? module.exports : {}; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + + generator._invoke = makeInvokeMethod(innerFn, self, context); + return generator; + } + + runtime.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + + function tryCatch(fn, obj, arg) { + try { + return { + type: "normal", + arg: fn.call(obj, arg) + }; + } catch (err) { + return { + type: "throw", + arg: err + }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + + var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + + function Generator() {} + + function GeneratorFunction() {} + + function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + + + var IteratorPrototype = {}; + + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + + if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function (method) { + prototype[method] = function (arg) { + return this._invoke(method, arg); + }; + }); + } + + runtime.isGeneratorFunction = function (genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" : false; + }; + + runtime.mark = function (genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + + genFun.prototype = Object.create(Gp); + return genFun; + }; // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + + + runtime.awrap = function (arg) { + return { + __await: arg + }; + }; + + function AsyncIterator(generator) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + + if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { + return Promise.resolve(value.__await).then(function (value) { + invoke("next", value, resolve, reject); + }, function (err) { + invoke("throw", err, resolve, reject); + }); + } + + return Promise.resolve(value).then(function (unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. If the Promise is rejected, however, the + // result for this iteration will be rejected with the same + // reason. Note that rejections of yielded Promises are not + // thrown back into the generator function, as is the case + // when an awaited Promise is rejected. This difference in + // behavior between yield and await is important, because it + // allows the consumer to decide what to do with the yielded + // rejection (swallow it and continue, manually .throw it back + // into the generator, abandon iteration, whatever). With + // await, by contrast, there is no opportunity to examine the + // rejection reason outside the generator function, so the + // only option is to throw it from the await expression, and + // let the generator function handle the exception. + result.value = unwrapped; + resolve(result); + }, reject); + } + } + + if (_typeof(global.process) === "object" && global.process.domain) { + invoke = global.process.domain.bind(invoke); + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new Promise(function (resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + + + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + + runtime.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + + runtime.async = function (innerFn, outerFn, self, tryLocsList) { + var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); + return runtime.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function (result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + + + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + var record = tryCatch(innerFn, self, context); + + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done ? GenStateCompleted : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + } else if (record.type === "throw") { + state = GenStateCompleted; // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + + + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError("The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (!info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield). + + context.next = delegate.nextLoc; // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + } else { + // Re-yield the result returned by the delegate method. + return info; + } // The delegate iterator is finished, so forget it and continue with + // the outer generator. + + + context.delegate = null; + return ContinueSentinel; + } // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + + + defineIteratorMethods(Gp); + Gp[toStringTagSymbol] = "Generator"; // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + + Gp[iteratorSymbol] = function () { + return this; + }; + + Gp.toString = function () { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { + tryLoc: locs[0] + }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ + tryLoc: "root" + }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + runtime.keys = function (object) { + var keys = []; + + for (var key in object) { + keys.push(key); + } + + keys.reverse(); // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + + return function next() { + while (keys.length) { + var key = keys.pop(); + + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + + + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, + next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + return next; + }; + + return next.next = next; + } + } // Return an iterator with no values. + + + return { + next: doneResult + }; + } + + runtime.values = values; + + function doneResult() { + return { + value: undefined, + done: true + }; + } + + Context.prototype = { + constructor: Context, + reset: function reset(skipTempReset) { + this.prev = 0; + this.next = 0; // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + this.method = "next"; + this.arg = undefined; + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + stop: function stop() { + this.done = true; + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + dispatchException: function dispatchException(exception) { + if (this.done) { + throw exception; + } + + var context = this; + + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !!caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + abrupt: function abrupt(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + complete: function complete(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + finish: function finish(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + "catch": function _catch(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + + return thrown; + } + } // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + + + throw new Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; +}( // Among the various tricks for obtaining a reference to the global +// object, this seems to be the most reliable technique that does not +// use indirect eval (which violates Content Security Policy). +(typeof global === "undefined" ? "undefined" : _typeof(global)) === "object" ? global : (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" ? window : (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" ? self : this); +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(/*! ./../webpack/buildin/global.js */ "./node_modules/webpack/buildin/global.js"), __webpack_require__(/*! ./../webpack/buildin/module.js */ "./node_modules/webpack/buildin/module.js")(module))) + +/***/ }), + /***/ "./node_modules/scrypt-js/scrypt.js": /*!******************************************!*\ !*** ./node_modules/scrypt-js/scrypt.js ***! @@ -56578,17 +88793,17 @@ module.exports = function typedarrayToBuffer(arr) { /***/ }), -/***/ "./node_modules/wagmi-private/connectors/walletConnect/dist/wagmi-private-connectors-walletConnect.esm.js": -/*!****************************************************************************************************************!*\ - !*** ./node_modules/wagmi-private/connectors/walletConnect/dist/wagmi-private-connectors-walletConnect.esm.js ***! - \****************************************************************************************************************/ +/***/ "./node_modules/wagmi-core/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/wagmi-core/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js ***! + \**********************************************************************************************************/ /*! exports provided: WalletConnectConnector */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "WalletConnectConnector", function() { return WalletConnectConnector; }); -/* harmony import */ var _dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../dist/base-3b1382b0.esm.js */ "./node_modules/wagmi-private/dist/base-3b1382b0.esm.js"); +/* harmony import */ var _dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../dist/base-2a0d02bb.esm.js */ "./node_modules/wagmi-core/dist/base-2a0d02bb.esm.js"); /* harmony import */ var _ethersproject_providers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/providers */ "./node_modules/@ethersproject/providers/lib.esm/index.js"); /* harmony import */ var _walletconnect_ethereum_provider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @walletconnect/ethereum-provider */ "./node_modules/@walletconnect/ethereum-provider/dist/esm/index.js"); /* harmony import */ var ethers_lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ethers/lib/utils */ "./node_modules/ethers/lib/utils.js"); @@ -56609,6 +88824,10 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _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, descriptor.key, descriptor); } } @@ -56636,7 +88855,7 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g function _classPrivateMethodInitSpec(obj, privateSet) { - Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["m"])(obj, privateSet); + Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["l"])(obj, privateSet); privateSet.add(obj); } @@ -56661,37 +88880,37 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { var _super = _createSuper(WalletConnectConnector); function WalletConnectConnector(config) { - var _this7; + var _this; _classCallCheck(this, WalletConnectConnector); - _this7 = _super.call(this, config); + _this = _super.call(this, config); - _classPrivateMethodInitSpec(_assertThisInitialized(_this7), _switchChain); + _classPrivateMethodInitSpec(_assertThisInitialized(_this), _switchChain); - Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this7), "id", 'walletConnect'); + Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "id", 'walletConnect'); - Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this7), "name", 'WalletConnect'); + Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "name", 'WalletConnect'); - Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this7), "ready", true); + Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "ready", true); - Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["a"])(_assertThisInitialized(_this7), _provider, { + Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["a"])(_assertThisInitialized(_this), _provider, { writable: true, value: void 0 }); - Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this7), "onAccountsChanged", function (accounts) { - if (accounts.length === 0) _this7.emit('disconnect');else _this7.emit('change', { + Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "onAccountsChanged", function (accounts) { + if (accounts.length === 0) _this.emit('disconnect');else _this.emit('change', { account: Object(ethers_lib_utils__WEBPACK_IMPORTED_MODULE_3__["getAddress"])(accounts[0]) }); }); - Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this7), "onChainChanged", function (chainId) { - var id = Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"])(chainId); + Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "onChainChanged", function (chainId) { + var id = Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"])(chainId); - var unsupported = _this7.isChainUnsupported(id); + var unsupported = _this.isChainUnsupported(id); - _this7.emit('change', { + _this.emit('change', { chain: { id: id, unsupported: unsupported @@ -56699,19 +88918,17 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { }); }); - Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this7), "onDisconnect", function () { - _this7.emit('disconnect'); + Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "onDisconnect", function () { + _this.emit('disconnect'); }); - return _this7; + return _this; } _createClass(WalletConnectConnector, [{ key: "connect", - value: function connect() { - var _this = this; - - return Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + value: function () { + var _connect = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var _provider$connector$p, _provider$connector, _provider$connector$p2, provider, accounts, account, id, unsupported, walletName; return regeneratorRuntime.wrap(function _callee$(_context) { @@ -56719,10 +88936,10 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; - provider = _this.getProvider(true); - provider.on('accountsChanged', _this.onAccountsChanged); - provider.on('chainChanged', _this.onChainChanged); - provider.on('disconnect', _this.onDisconnect); + provider = this.getProvider(true); + provider.on('accountsChanged', this.onAccountsChanged); + provider.on('chainChanged', this.onChainChanged); + provider.on('disconnect', this.onDisconnect); _context.next = 7; return provider.enable(); @@ -56730,15 +88947,15 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { accounts = _context.sent; account = Object(ethers_lib_utils__WEBPACK_IMPORTED_MODULE_3__["getAddress"])(accounts[0]); _context.next = 11; - return _this.getChainId(); + return this.getChainId(); case 11: id = _context.sent; - unsupported = _this.isChainUnsupported(id); // Not all WalletConnect options support programmatic chain switching + unsupported = this.isChainUnsupported(id); // Not all WalletConnect options support programmatic chain switching // Only enable for wallet options that do walletName = (_provider$connector$p = (_provider$connector = provider.connector) === null || _provider$connector === void 0 ? void 0 : (_provider$connector$p2 = _provider$connector.peerMeta) === null || _provider$connector$p2 === void 0 ? void 0 : _provider$connector$p2.name) !== null && _provider$connector$p !== void 0 ? _provider$connector$p : ''; - if (switchChainAllowedRegex.test(walletName)) _this.switchChain = _classPrivateMethodGet(_this, _switchChain, _switchChain2); + if (switchChainAllowedRegex.test(walletName)) this.switchChain = _classPrivateMethodGet(this, _switchChain, _switchChain2); return _context.abrupt("return", { account: account, chain: { @@ -56757,7 +88974,7 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { break; } - throw new _dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"](); + throw new _dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"](); case 22: throw _context.t0; @@ -56767,28 +88984,32 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { return _context.stop(); } } - }, _callee, null, [[0, 18]]); - }))(); - } + }, _callee, this, [[0, 18]]); + })); + + function connect() { + return _connect.apply(this, arguments); + } + + return connect; + }() }, { key: "disconnect", - value: function disconnect() { - var _this2 = this; - - return Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + value: function () { + var _disconnect = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { var provider; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: - provider = _this2.getProvider(); + provider = this.getProvider(); _context2.next = 3; return provider.disconnect(); case 3: - provider.removeListener('accountsChanged', _this2.onAccountsChanged); - provider.removeListener('chainChanged', _this2.onChainChanged); - provider.removeListener('disconnect', _this2.onDisconnect); + provider.removeListener('accountsChanged', this.onAccountsChanged); + provider.removeListener('chainChanged', this.onChainChanged); + provider.removeListener('disconnect', this.onDisconnect); typeof localStorage !== 'undefined' && localStorage.removeItem('walletconnect'); case 7: @@ -56796,21 +89017,25 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { return _context2.stop(); } } - }, _callee2); - }))(); - } + }, _callee2, this); + })); + + function disconnect() { + return _disconnect.apply(this, arguments); + } + + return disconnect; + }() }, { key: "getAccount", - value: function getAccount() { - var _this3 = this; - - return Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + value: function () { + var _getAccount = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var provider, accounts; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: - provider = _this3.getProvider(); + provider = this.getProvider(); accounts = provider.accounts; // return checksum address return _context3.abrupt("return", Object(ethers_lib_utils__WEBPACK_IMPORTED_MODULE_3__["getAddress"])(accounts[0])); @@ -56820,22 +89045,26 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { return _context3.stop(); } } - }, _callee3); - }))(); - } + }, _callee3, this); + })); + + function getAccount() { + return _getAccount.apply(this, arguments); + } + + return getAccount; + }() }, { key: "getChainId", - value: function getChainId() { - var _this4 = this; - - return Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { + value: function () { + var _getChainId = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var provider, chainId; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: - provider = _this4.getProvider(); - chainId = Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"])(provider.chainId); + provider = this.getProvider(); + chainId = Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"])(provider.chainId); return _context4.abrupt("return", chainId); case 3: @@ -56843,29 +89072,33 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { return _context4.stop(); } } - }, _callee4); - }))(); - } + }, _callee4, this); + })); + + function getChainId() { + return _getChainId.apply(this, arguments); + } + + return getChainId; + }() }, { key: "getProvider", value: function getProvider(create) { - if (!Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, _provider) || create) Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["d"])(this, _provider, new _walletconnect_ethereum_provider__WEBPACK_IMPORTED_MODULE_2__["default"](this.options)); - return Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, _provider); + if (!Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["d"])(this, _provider) || create) Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["c"])(this, _provider, new _walletconnect_ethereum_provider__WEBPACK_IMPORTED_MODULE_2__["default"](this.options)); + return Object(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["d"])(this, _provider); } }, { key: "getSigner", - value: function getSigner() { - var _this5 = this; - - return Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { + value: function () { + var _getSigner = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var provider, account; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: - provider = _this5.getProvider(); + provider = this.getProvider(); _context5.next = 3; - return _this5.getAccount(); + return this.getAccount(); case 3: account = _context5.sent; @@ -56876,15 +89109,19 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { return _context5.stop(); } } - }, _callee5); - }))(); - } + }, _callee5, this); + })); + + function getSigner() { + return _getSigner.apply(this, arguments); + } + + return getSigner; + }() }, { key: "isAuthorized", - value: function isAuthorized() { - var _this6 = this; - - return Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { + value: function () { + var _isAuthorized = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { var account; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { @@ -56892,7 +89129,7 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { case 0: _context6.prev = 0; _context6.next = 3; - return _this6.getAccount(); + return this.getAccount(); case 3: account = _context6.sent; @@ -56908,20 +89145,26 @@ var WalletConnectConnector = /*#__PURE__*/function (_Connector) { return _context6.stop(); } } - }, _callee6, null, [[0, 7]]); - }))(); - } + }, _callee6, this, [[0, 7]]); + })); + + function isAuthorized() { + return _isAuthorized.apply(this, arguments); + } + + return isAuthorized; + }() }]); return WalletConnectConnector; -}(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["C"]); +}(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["C"]); function _switchChain2(_x) { return _switchChain3.apply(this, arguments); } function _switchChain3() { - _switchChain3 = Object(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(chainId) { + _switchChain3 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(chainId) { var provider, id, chains, message; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { @@ -56939,7 +89182,7 @@ function _switchChain3() { }); case 5: - chains = [].concat(_toConsumableArray(this.chains), _toConsumableArray(_dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["f"])); + chains = [].concat(_toConsumableArray(this.chains), _toConsumableArray(_dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["e"])); return _context7.abrupt("return", chains.find(function (x) { return x.id === chainId; })); @@ -56954,10 +89197,10 @@ function _switchChain3() { break; } - throw new _dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"](); + throw new _dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"](); case 16: - throw new _dist_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["S"](); + throw new _dist_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["S"](); case 17: case "end": @@ -56973,11 +89216,11 @@ function _switchChain3() { /***/ }), -/***/ "./node_modules/wagmi-private/dist/base-3b1382b0.esm.js": -/*!**************************************************************!*\ - !*** ./node_modules/wagmi-private/dist/base-3b1382b0.esm.js ***! - \**************************************************************/ -/*! exports provided: A, C, S, U, _, a, b, c, d, e, f, g, h, i, j, k, l, m, n */ +/***/ "./node_modules/wagmi-core/dist/base-2a0d02bb.esm.js": +/*!***********************************************************!*\ + !*** ./node_modules/wagmi-core/dist/base-2a0d02bb.esm.js ***! + \***********************************************************/ +/*! exports provided: A, C, S, U, _, a, b, c, d, e, f, g, h, i, j, k, l, n */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -56988,18 +89231,17 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "U", function() { return UserRejectedRequestError; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_", function() { return _defineProperty; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _classPrivateFieldInitSpec; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _asyncToGenerator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return ConnectorNotFoundError; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return _classPrivateFieldSet; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return _classPrivateFieldGet; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return allChains; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return ChainNotConfiguredError; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return chain; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return defaultChains; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return defaultL2Chains; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return developmentChains; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return ConnectorAlreadyConnectedError; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return _checkPrivateRedeclaration; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return ConnectorNotFoundError; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return _classPrivateFieldSet; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return _classPrivateFieldGet; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return allChains; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return ChainNotConfiguredError; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return defaultChains; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return defaultL2Chains; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return chain; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return developmentChains; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return ConnectorAlreadyConnectedError; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return _checkPrivateRedeclaration; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return normalizeChainId; }); /* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! eventemitter3 */ "./node_modules/eventemitter3/index.js"); /* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_0__); @@ -57033,40 +89275,16 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); } } -function _asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); +function _classPrivateFieldInitSpec(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - - _next(undefined); - }); - }; + privateMap.set(obj, value); } function _defineProperty(obj, key, value) { @@ -57084,18 +89302,6 @@ function _defineProperty(obj, key, value) { return obj; } -function _checkPrivateRedeclaration(obj, privateCollection) { - if (privateCollection.has(obj)) { - throw new TypeError("Cannot initialize the same private elements twice on an object"); - } -} - -function _classPrivateFieldInitSpec(obj, privateMap, value) { - _checkPrivateRedeclaration(obj, privateMap); - - privateMap.set(obj, value); -} - function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); @@ -57137,6 +89343,11 @@ function _classPrivateFieldSet(receiver, privateMap, value) { return value; } +/** + * Data from Chainlist + * @see https://chainlist.org + */ + var chain = { mainnet: { @@ -57183,6 +89394,20 @@ var chain = { }], testnet: true }, + gnosis: { + id: 100, + name: 'Gnosis Chain', + nativeCurrency: { + name: 'xDai', + symbol: 'xDAI', + decimals: 18 + }, + rpcUrls: ['https://rpc.gnosischain.com'], + blockExplorers: [{ + name: 'Blockscout', + url: 'https://blockscout.com' + }] + }, goerli: { id: 5, name: 'Goerli', @@ -57213,12 +89438,12 @@ var chain = { }], testnet: true }, - optimisticEthereum: { + optimism: { id: 10, - name: 'Optimistic Ethereum', + name: 'Optimism', nativeCurrency: { - name: 'Optimistic Ether', - symbol: 'OETH', + name: 'Ether', + symbol: 'ETH', decimals: 18 }, rpcUrls: ['https://mainnet.optimism.io'], @@ -57227,9 +89452,9 @@ var chain = { url: 'https://optimistic.etherscan.io' }] }, - optimisticKovan: { + optimismKovan: { id: 69, - name: 'Optimistic Kovan', + name: 'Optimism Kovan', nativeCurrency: { name: 'Kovan Ether', symbol: 'KOR', @@ -57238,7 +89463,7 @@ var chain = { rpcUrls: ['https://kovan.optimism.io'], blockExplorers: [{ name: 'Etherscan', - url: 'https://optimistic.etherscan.io' + url: 'https://kovan-optimistic.etherscan.io' }], testnet: true }, @@ -57246,7 +89471,7 @@ var chain = { id: 137, name: 'Polygon Mainnet', nativeCurrency: { - name: 'Matic', + name: 'MATIC', symbol: 'MATIC', decimals: 18 }, @@ -57258,9 +89483,9 @@ var chain = { }, polygonTestnetMumbai: { id: 80001, - name: 'Polygon Testnet Mumbai', + name: 'Mumbai', nativeCurrency: { - name: 'Matic', + name: 'MATIC', symbol: 'MATIC', decimals: 18 }, @@ -57290,10 +89515,10 @@ var chain = { }, arbitrumRinkeby: { id: 421611, - name: 'Rinkeby Arbitrum', + name: 'Arbitrum Rinkeby', nativeCurrency: { - name: 'Rinkeby ArbEther', - symbol: 'rinkArbETH', + name: 'Arbitrum Rinkeby Ether', + symbol: 'ARETH', decimals: 18 }, rpcUrls: ['https://rinkeby.arbitrum.io/rpc'], @@ -57305,31 +89530,31 @@ var chain = { }, avalanche: { id: 43114, - name: 'Avalanche', + name: 'Avalanche Mainnet', nativeCurrency: { - name: 'AVAX', + name: 'Avalanche', symbol: 'AVAX', decimals: 18 }, rpcUrls: ['https://api.avax.network/ext/bc/C/rpc'], blockExplorers: [{ name: 'SnowTrace', - url: 'https://snowtrace.io/' + url: 'https://snowtrace.io' }], testnet: false }, avalancheFuji: { id: 43113, - name: 'Avalanche FUJI', + name: 'Avalanche Fuji Testnet', nativeCurrency: { - name: 'AVAX', + name: 'Avalanche', symbol: 'AVAX', decimals: 18 }, rpcUrls: ['https://api.avax-test.network/ext/bc/C/rpc'], blockExplorers: [{ name: 'SnowTrace', - url: 'https://testnet.snowtrace.io/' + url: 'https://testnet.snowtrace.io' }], testnet: true }, @@ -57340,13 +89565,13 @@ var chain = { }, hardhat: { id: 31337, - name: 'hardhat', + name: 'Hardhat', rpcUrls: ['http://127.0.0.1:8545'] } }; var allChains = Object.values(chain); var defaultChains = [chain.mainnet, chain.ropsten, chain.rinkeby, chain.goerli, chain.kovan]; -var defaultL2Chains = [chain.optimisticEthereum, chain.optimisticKovan, chain.polygonMainnet, chain.polygonTestnetMumbai, chain.arbitrumOne, chain.arbitrumRinkeby]; +var defaultL2Chains = [chain.gnosis, chain.optimism, chain.optimismKovan, chain.polygonMainnet, chain.polygonTestnetMumbai, chain.arbitrumOne, chain.arbitrumRinkeby]; var developmentChains = [chain.localhost, chain.hardhat]; var normalizeChainId = function normalizeChainId(chainId) { @@ -57541,54 +89766,64 @@ var Connector = /*#__PURE__*/function (_EventEmitter) { /***/ }), -/***/ "./node_modules/wagmi-private/dist/wagmi-private.esm.js": -/*!**************************************************************!*\ - !*** ./node_modules/wagmi-private/dist/wagmi-private.esm.js ***! - \**************************************************************/ -/*! exports provided: AddChainError, ChainNotConfiguredError, Connector, ConnectorAlreadyConnectedError, ConnectorNotFoundError, SwitchChainError, UserRejectedRequestError, allChains, chain, defaultChains, defaultL2Chains, developmentChains, normalizeChainId, InjectedConnector, erc1155ABI, erc20ABI, erc721ABI, units */ +/***/ "./node_modules/wagmi-core/dist/wagmi-core.esm.js": +/*!********************************************************!*\ + !*** ./node_modules/wagmi-core/dist/wagmi-core.esm.js ***! + \********************************************************/ +/*! exports provided: AddChainError, ChainNotConfiguredError, Connector, ConnectorAlreadyConnectedError, ConnectorNotFoundError, SwitchChainError, UserRejectedRequestError, allChains, chain, defaultChains, defaultL2Chains, developmentChains, normalizeChainId, InjectedConnector, balanceAction, erc1155ABI, erc20ABI, erc721ABI, units */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InjectedConnector", function() { return InjectedConnector; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "balanceAction", function() { return balanceAction; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "erc1155ABI", function() { return erc1155ABI; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "erc20ABI", function() { return erc20ABI; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "erc721ABI", function() { return erc721ABI; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "units", function() { return units; }); -/* harmony import */ var _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-3b1382b0.esm.js */ "./node_modules/wagmi-private/dist/base-3b1382b0.esm.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AddChainError", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["A"]; }); +/* harmony import */ var _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base-2a0d02bb.esm.js */ "./node_modules/wagmi-core/dist/base-2a0d02bb.esm.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AddChainError", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["A"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChainNotConfiguredError", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["g"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChainNotConfiguredError", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["f"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Connector", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["C"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Connector", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["C"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorAlreadyConnectedError", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["l"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorAlreadyConnectedError", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["k"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorNotFoundError", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["c"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorNotFoundError", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchChainError", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["S"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchChainError", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["S"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserRejectedRequestError", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserRejectedRequestError", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allChains", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["f"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allChains", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["e"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chain", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["h"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chain", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["i"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultChains", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["i"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultChains", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["g"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultL2Chains", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["j"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultL2Chains", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["h"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "developmentChains", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["k"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "developmentChains", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["j"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeChainId", function() { return _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeChainId", function() { return _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"]; }); /* harmony import */ var _ethersproject_providers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/providers */ "./node_modules/@ethersproject/providers/lib.esm/index.js"); /* harmony import */ var ethers_lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ethers/lib/utils */ "./node_modules/ethers/lib/utils.js"); /* harmony import */ var ethers_lib_utils__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(ethers_lib_utils__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! eventemitter3 */ "./node_modules/eventemitter3/index.js"); -/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var ethers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ethers */ "./node_modules/ethers/lib.esm/index.js"); +/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! eventemitter3 */ "./node_modules/eventemitter3/index.js"); +/* harmony import */ var eventemitter3__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(eventemitter3__WEBPACK_IMPORTED_MODULE_4__); function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -57601,6 +89836,16 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function 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; } + +function _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) { _defineProperty2(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; } + +function _defineProperty2(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _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, descriptor.key, descriptor); } } @@ -57627,32 +89872,6 @@ function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.g -function 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; -} - -function _objectSpread2(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) { - Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(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; -} - var erc1155ABI = [{ constant: true, inputs: [{ @@ -57892,6 +90111,7 @@ var units = ['wei', 'kwei', 'mwei', 'gwei', 'szabo', 'finney', 'ether']; var getInjectedName = function getInjectedName(ethereum) { if (!ethereum) return 'Injected'; + if (ethereum.isBraveWallet) return 'Brave Wallet'; if (ethereum.isMetaMask) return 'MetaMask'; if (ethereum.isCoinbaseWallet) return 'Coinbase Wallet'; if (ethereum.isFrame) return 'Frame'; @@ -57909,37 +90129,37 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { var _super = _createSuper(InjectedConnector); function InjectedConnector(config) { - var _this9; + var _this; _classCallCheck(this, InjectedConnector); - _this9 = _super.call(this, _objectSpread2(_objectSpread2({}, config), {}, { + _this = _super.call(this, _objectSpread(_objectSpread({}, config), {}, { options: config === null || config === void 0 ? void 0 : config.options })); - Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this9), "id", 'injected'); + Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "id", 'injected'); - Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this9), "name", void 0); + Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "name", void 0); - Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this9), "ready", typeof window != 'undefined' && !!window.ethereum); + Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "ready", typeof window != 'undefined' && !!window.ethereum); - Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["a"])(_assertThisInitialized(_this9), _provider, { + Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["a"])(_assertThisInitialized(_this), _provider, { writable: true, value: void 0 }); - Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this9), "onAccountsChanged", function (accounts) { - if (accounts.length === 0) _this9.emit('disconnect');else _this9.emit('change', { + Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "onAccountsChanged", function (accounts) { + if (accounts.length === 0) _this.emit('disconnect');else _this.emit('change', { account: Object(ethers_lib_utils__WEBPACK_IMPORTED_MODULE_2__["getAddress"])(accounts[0]) }); }); - Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this9), "onChainChanged", function (chainId) { - var id = Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"])(chainId); + Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "onChainChanged", function (chainId) { + var id = Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"])(chainId); - var unsupported = _this9.isChainUnsupported(id); + var unsupported = _this.isChainUnsupported(id); - _this9.emit('change', { + _this.emit('change', { chain: { id: id, unsupported: unsupported @@ -57947,61 +90167,59 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { }); }); - Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this9), "onDisconnect", function () { + Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["_"])(_assertThisInitialized(_this), "onDisconnect", function () { var _this$options; - _this9.emit('disconnect'); + _this.emit('disconnect'); - if ((_this$options = _this9.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) typeof localStorage !== 'undefined' && localStorage.removeItem(shimKey); + if ((_this$options = _this.options) !== null && _this$options !== void 0 && _this$options.shimDisconnect) typeof localStorage !== 'undefined' && localStorage.removeItem(shimKey); }); var name = 'Injected'; if (typeof window !== 'undefined') name = getInjectedName(window.ethereum); - _this9.name = name; - return _this9; + _this.name = name; + return _this; } _createClass(InjectedConnector, [{ key: "connect", - value: function connect() { - var _this = this; - - return Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { - var _this$options2, provider, account, id, unsupported; + value: function () { + var _connect = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var _this$options3, provider, _this$options2, account, id, unsupported; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; - provider = _this.getProvider(); + provider = this.getProvider(); if (provider) { _context.next = 4; break; } - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["c"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"](); case 4: if (provider.on) { - provider.on('accountsChanged', _this.onAccountsChanged); - provider.on('chainChanged', _this.onChainChanged); - provider.on('disconnect', _this.onDisconnect); + provider.on('accountsChanged', this.onAccountsChanged); + provider.on('chainChanged', this.onChainChanged); + if (!((_this$options2 = this.options) !== null && _this$options2 !== void 0 && _this$options2.shimChainChangedDisconnect)) provider.on('disconnect', this.onDisconnect); } _context.next = 7; - return _this.getAccount(); + return this.getAccount(); case 7: account = _context.sent; _context.next = 10; - return _this.getChainId(); + return this.getChainId(); case 10: id = _context.sent; - unsupported = _this.isChainUnsupported(id); - if ((_this$options2 = _this.options) !== null && _this$options2 !== void 0 && _this$options2.shimDisconnect) typeof localStorage !== 'undefined' && localStorage.setItem(shimKey, 'true'); + unsupported = this.isChainUnsupported(id); + if ((_this$options3 = this.options) !== null && _this$options3 !== void 0 && _this$options3.shimDisconnect) typeof localStorage !== 'undefined' && localStorage.setItem(shimKey, 'true'); return _context.abrupt("return", { account: account, chain: { @@ -58020,7 +90238,7 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { break; } - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"](); case 20: throw _context.t0; @@ -58030,22 +90248,26 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { return _context.stop(); } } - }, _callee, null, [[0, 16]]); - }))(); - } + }, _callee, this, [[0, 16]]); + })); + + function connect() { + return _connect.apply(this, arguments); + } + + return connect; + }() }, { key: "disconnect", - value: function disconnect() { - var _this2 = this; - - return Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { - var _this2$options, provider; + value: function () { + var _disconnect = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() { + var _this$options4, provider; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: - provider = _this2.getProvider(); + provider = this.getProvider(); if (provider !== null && provider !== void 0 && provider.removeListener) { _context2.next = 3; @@ -58055,38 +90277,42 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { return _context2.abrupt("return"); case 3: - provider.removeListener('accountsChanged', _this2.onAccountsChanged); - provider.removeListener('chainChanged', _this2.onChainChanged); - provider.removeListener('disconnect', _this2.onDisconnect); - if ((_this2$options = _this2.options) !== null && _this2$options !== void 0 && _this2$options.shimDisconnect) typeof localStorage !== 'undefined' && localStorage.removeItem(shimKey); + provider.removeListener('accountsChanged', this.onAccountsChanged); + provider.removeListener('chainChanged', this.onChainChanged); + provider.removeListener('disconnect', this.onDisconnect); + if ((_this$options4 = this.options) !== null && _this$options4 !== void 0 && _this$options4.shimDisconnect) typeof localStorage !== 'undefined' && localStorage.removeItem(shimKey); case 7: case "end": return _context2.stop(); } } - }, _callee2); - }))(); - } + }, _callee2, this); + })); + + function disconnect() { + return _disconnect.apply(this, arguments); + } + + return disconnect; + }() }, { key: "getAccount", - value: function getAccount() { - var _this3 = this; - - return Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { + value: function () { + var _getAccount = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var provider, accounts; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: - provider = _this3.getProvider(); + provider = this.getProvider(); if (provider) { _context3.next = 3; break; } - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["c"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"](); case 3: _context3.next = 5; @@ -58103,34 +90329,38 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { return _context3.stop(); } } - }, _callee3); - }))(); - } + }, _callee3, this); + })); + + function getAccount() { + return _getAccount.apply(this, arguments); + } + + return getAccount; + }() }, { key: "getChainId", - value: function getChainId() { - var _this4 = this; - - return Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { + value: function () { + var _getChainId = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var provider; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: - provider = _this4.getProvider(); + provider = this.getProvider(); if (provider) { _context4.next = 3; break; } - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["c"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"](); case 3: _context4.next = 5; return provider.request({ method: 'eth_chainId' - }).then(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"]); + }).then(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["n"]); case 5: return _context4.abrupt("return", _context4.sent); @@ -58140,29 +90370,33 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { return _context4.stop(); } } - }, _callee4); - }))(); - } + }, _callee4, this); + })); + + function getChainId() { + return _getChainId.apply(this, arguments); + } + + return getChainId; + }() }, { key: "getProvider", value: function getProvider() { - if (typeof window !== 'undefined' && !!window.ethereum) Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["d"])(this, _provider, window.ethereum); - return Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["e"])(this, _provider); + if (typeof window !== 'undefined' && !!window.ethereum) Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["c"])(this, _provider, window.ethereum); + return Object(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["d"])(this, _provider); } }, { key: "getSigner", - value: function getSigner() { - var _this5 = this; - - return Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { + value: function () { + var _getSigner = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var provider, account; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: - provider = _this5.getProvider(); + provider = this.getProvider(); _context5.next = 3; - return _this5.getAccount(); + return this.getAccount(); case 3: account = _context5.sent; @@ -58173,16 +90407,20 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { return _context5.stop(); } } - }, _callee5); - }))(); - } + }, _callee5, this); + })); + + function getSigner() { + return _getSigner.apply(this, arguments); + } + + return getSigner; + }() }, { key: "isAuthorized", - value: function isAuthorized() { - var _this6 = this; - - return Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { - var _this6$options, provider, accounts, account; + value: function () { + var _isAuthorized = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() { + var _this$options5, provider, accounts, account; return regeneratorRuntime.wrap(function _callee6$(_context6) { while (1) { @@ -58190,7 +90428,7 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { case 0: _context6.prev = 0; - if (!((_this6$options = _this6.options) !== null && _this6$options !== void 0 && _this6$options.shimDisconnect && typeof localStorage !== 'undefined' && !localStorage.getItem(shimKey))) { + if (!((_this$options5 = this.options) !== null && _this$options5 !== void 0 && _this$options5.shimDisconnect && typeof localStorage !== 'undefined' && !localStorage.getItem(shimKey))) { _context6.next = 3; break; } @@ -58198,14 +90436,14 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { return _context6.abrupt("return", false); case 3: - provider = _this6.getProvider(); + provider = this.getProvider(); if (provider) { _context6.next = 6; break; } - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["c"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"](); case 6: _context6.next = 8; @@ -58228,29 +90466,33 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { return _context6.stop(); } } - }, _callee6, null, [[0, 13]]); - }))(); - } + }, _callee6, this, [[0, 13]]); + })); + + function isAuthorized() { + return _isAuthorized.apply(this, arguments); + } + + return isAuthorized; + }() }, { key: "switchChain", - value: function switchChain(chainId) { - var _this7 = this; - - return Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee7() { + value: function () { + var _switchChain = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(chainId) { var provider, id, chains, _chain$blockExplorers, chain; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { switch (_context7.prev = _context7.next) { case 0: - provider = _this7.getProvider(); + provider = this.getProvider(); if (provider) { _context7.next = 3; break; } - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["c"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"](); case 3: id = Object(ethers_lib_utils__WEBPACK_IMPORTED_MODULE_2__["hexValue"])(chainId); @@ -58264,7 +90506,7 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { }); case 7: - chains = [].concat(_toConsumableArray(_this7.chains), _toConsumableArray(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["f"])); + chains = [].concat(_toConsumableArray(this.chains), _toConsumableArray(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["e"])); return _context7.abrupt("return", chains.find(function (x) { return x.id === chainId; })); @@ -58274,12 +90516,12 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { _context7.t0 = _context7["catch"](4); if (!(_context7.t0.code === 4902)) { - _context7.next = 27; + _context7.next = 28; break; } _context7.prev = 14; - chain = _this7.chains.find(function (x) { + chain = this.chains.find(function (x) { return x.id === chainId; }); @@ -58288,7 +90530,7 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { break; } - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["g"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["f"](); case 18: _context7.next = 20; @@ -58306,43 +90548,46 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { }); case 20: - _context7.next = 25; - break; + return _context7.abrupt("return", chain); - case 22: - _context7.prev = 22; + case 23: + _context7.prev = 23; _context7.t1 = _context7["catch"](14); - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["A"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["A"](); - case 25: - _context7.next = 32; + case 26: + _context7.next = 33; break; - case 27: + case 28: if (!(_context7.t0.code === 4001)) { - _context7.next = 31; + _context7.next = 32; break; } - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"](); - - case 31: - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["S"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["U"](); case 32: + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["S"](); + + case 33: case "end": return _context7.stop(); } } - }, _callee7, null, [[4, 11], [14, 22]]); - }))(); - } + }, _callee7, this, [[4, 11], [14, 23]]); + })); + + function switchChain(_x) { + return _switchChain.apply(this, arguments); + } + + return switchChain; + }() }, { key: "watchAsset", - value: function watchAsset(_ref) { - var _this8 = this; - - return Object(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"])( /*#__PURE__*/regeneratorRuntime.mark(function _callee8() { + value: function () { + var _watchAsset = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8(_ref) { var address, _ref$decimals, decimals, image, symbol, provider; return regeneratorRuntime.wrap(function _callee8$(_context8) { @@ -58350,14 +90595,14 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { switch (_context8.prev = _context8.next) { case 0: address = _ref.address, _ref$decimals = _ref.decimals, decimals = _ref$decimals === void 0 ? 18 : _ref$decimals, image = _ref.image, symbol = _ref.symbol; - provider = _this8.getProvider(); + provider = this.getProvider(); if (provider) { _context8.next = 4; break; } - throw new _base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["c"](); + throw new _base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["b"](); case 4: _context8.next = 6; @@ -58379,13 +90624,83 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { return _context8.stop(); } } - }, _callee8); - }))(); - } + }, _callee8, this); + })); + + function watchAsset(_x2) { + return _watchAsset.apply(this, arguments); + } + + return watchAsset; + }() }]); return InjectedConnector; -}(_base_3b1382b0_esm_js__WEBPACK_IMPORTED_MODULE_0__["C"]); +}(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["C"]); + +var balanceAction = /*#__PURE__*/function () { + var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9(_ref) { + var _config$formatUnits, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4, _ref$chains, chains, config, provider, unit, contract, _yield$Promise$all, _yield$Promise$all2, _value, decimals, symbol, value, chain; + + return regeneratorRuntime.wrap(function _callee9$(_context9) { + while (1) { + switch (_context9.prev = _context9.next) { + case 0: + _ref$chains = _ref.chains, chains = _ref$chains === void 0 ? [].concat(_toConsumableArray(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["g"]), _toConsumableArray(_base_2a0d02bb_esm_js__WEBPACK_IMPORTED_MODULE_0__["h"])) : _ref$chains, config = _ref.config, provider = _ref.provider; + unit = (_config$formatUnits = config.formatUnits) !== null && _config$formatUnits !== void 0 ? _config$formatUnits : 'ether'; + + if (!config.token) { + _context9.next = 12; + break; + } + + contract = new ethers__WEBPACK_IMPORTED_MODULE_3__["ethers"].Contract(config.token, erc20ABI, provider); + _context9.next = 6; + return Promise.all([contract.balanceOf(config.addressOrName), contract.decimals(), contract.symbol()]); + + case 6: + _yield$Promise$all = _context9.sent; + _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3); + _value = _yield$Promise$all2[0]; + decimals = _yield$Promise$all2[1]; + symbol = _yield$Promise$all2[2]; + return _context9.abrupt("return", { + decimals: decimals, + formatted: ethers__WEBPACK_IMPORTED_MODULE_3__["utils"].formatUnits(_value, unit), + symbol: symbol, + unit: unit, + value: _value + }); + + case 12: + _context9.next = 14; + return provider.getBalance(config.addressOrName); + + case 14: + value = _context9.sent; + chain = chains.find(function (x) { + return x.id === provider.network.chainId; + }); + return _context9.abrupt("return", { + decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18, + formatted: ethers__WEBPACK_IMPORTED_MODULE_3__["utils"].formatUnits(value, unit), + symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH', + unit: unit, + value: value + }); + + case 17: + case "end": + return _context9.stop(); + } + } + }, _callee9); + })); + + return function balanceAction(_x3) { + return _ref2.apply(this, arguments); + }; +}(); @@ -58400,8 +90715,8 @@ var InjectedConnector = /*#__PURE__*/function (_Connector) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var wagmi_private_connectors_walletConnect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! wagmi-private/connectors/walletConnect */ "./node_modules/wagmi-private/connectors/walletConnect/dist/wagmi-private-connectors-walletConnect.esm.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WalletConnectConnector", function() { return wagmi_private_connectors_walletConnect__WEBPACK_IMPORTED_MODULE_0__["WalletConnectConnector"]; }); +/* harmony import */ var wagmi_core_connectors_walletConnect__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! wagmi-core/connectors/walletConnect */ "./node_modules/wagmi-core/connectors/walletConnect/dist/wagmi-core-connectors-walletConnect.esm.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WalletConnectConnector", function() { return wagmi_core_connectors_walletConnect__WEBPACK_IMPORTED_MODULE_0__["WalletConnectConnector"]; }); @@ -58411,7 +90726,7 @@ __webpack_require__.r(__webpack_exports__); /*!**********************************************!*\ !*** ./node_modules/wagmi/dist/wagmi.esm.js ***! \**********************************************/ -/*! exports provided: AddChainError, ChainNotConfiguredError, Connector, ConnectorAlreadyConnectedError, ConnectorNotFoundError, InjectedConnector, SwitchChainError, UserRejectedRequestError, allChains, chain, defaultChains, defaultL2Chains, developmentChains, erc1155ABI, erc20ABI, erc721ABI, normalizeChainId, Context, Provider, WagmiProvider, useAccount, useBalance, useBlockNumber, useConnect, useContext, useContract, useContractEvent, useContractRead, useContractWrite, useEnsAvatar, useEnsLookup, useEnsResolveName, useEnsResolver, useFeeData, useNetwork, useProvider, useSignMessage, useSigner, useToken, useTransaction, useWaitForTransaction, useWebSocketProvider */ +/*! exports provided: AddChainError, ChainNotConfiguredError, Connector, ConnectorAlreadyConnectedError, ConnectorNotFoundError, InjectedConnector, SwitchChainError, UserRejectedRequestError, allChains, chain, defaultChains, defaultL2Chains, developmentChains, erc1155ABI, erc20ABI, erc721ABI, normalizeChainId, Context, Provider, WagmiProvider, useAccount, useBalance, useBlockNumber, useConnect, useContext, useContract, useContractEvent, useContractRead, useContractWrite, useEnsAvatar, useEnsLookup, useEnsResolveName, useEnsResolver, useFeeData, useNetwork, useProvider, useSignMessage, useSignTypedData, useSigner, useToken, useTransaction, useWaitForTransaction, useWebSocketProvider */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; @@ -58436,6 +90751,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useNetwork", function() { return useNetwork; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useProvider", function() { return useProvider; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSignMessage", function() { return useSignMessage; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSignTypedData", function() { return useSignTypedData; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useSigner", function() { return useSigner; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useToken", function() { return useToken; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "useTransaction", function() { return useTransaction; }); @@ -58444,40 +90760,40 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var _ethersproject_providers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @ethersproject/providers */ "./node_modules/@ethersproject/providers/lib.esm/index.js"); -/* harmony import */ var wagmi_private__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! wagmi-private */ "./node_modules/wagmi-private/dist/wagmi-private.esm.js"); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AddChainError", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["AddChainError"]; }); +/* harmony import */ var wagmi_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! wagmi-core */ "./node_modules/wagmi-core/dist/wagmi-core.esm.js"); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AddChainError", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["AddChainError"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChainNotConfiguredError", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["ChainNotConfiguredError"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ChainNotConfiguredError", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["ChainNotConfiguredError"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Connector", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["Connector"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Connector", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["Connector"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorAlreadyConnectedError", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["ConnectorAlreadyConnectedError"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorAlreadyConnectedError", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["ConnectorAlreadyConnectedError"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorNotFoundError", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["ConnectorNotFoundError"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectorNotFoundError", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["ConnectorNotFoundError"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InjectedConnector", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["InjectedConnector"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "InjectedConnector", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["InjectedConnector"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchChainError", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["SwitchChainError"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SwitchChainError", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["SwitchChainError"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserRejectedRequestError", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["UserRejectedRequestError"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UserRejectedRequestError", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["UserRejectedRequestError"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allChains", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["allChains"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "allChains", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["allChains"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chain", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["chain"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chain", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["chain"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultChains", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["defaultChains"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultChains", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["defaultChains"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultL2Chains", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["defaultL2Chains"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultL2Chains", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["defaultL2Chains"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "developmentChains", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["developmentChains"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "developmentChains", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["developmentChains"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "erc1155ABI", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["erc1155ABI"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "erc1155ABI", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["erc1155ABI"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "erc20ABI", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["erc20ABI"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "erc20ABI", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["erc20ABI"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "erc721ABI", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["erc721ABI"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "erc721ABI", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["erc721ABI"]; }); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeChainId", function() { return wagmi_private__WEBPACK_IMPORTED_MODULE_2__["normalizeChainId"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "normalizeChainId", function() { return wagmi_core__WEBPACK_IMPORTED_MODULE_2__["normalizeChainId"]; }); /* harmony import */ var ethers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ethers */ "./node_modules/ethers/lib.esm/index.js"); function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; } @@ -58490,6 +90806,16 @@ function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symb function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } +function 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; } + +function _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; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -58508,83 +90834,6 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } -function _defineProperty(obj, key, value) { - if (key in obj) { - Object.defineProperty(obj, key, { - value: value, - enumerable: true, - configurable: true, - writable: true - }); - } else { - obj[key] = value; - } - - return obj; -} - -function 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; -} - -function _objectSpread2(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; -} - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - - if (info.done) { - resolve(value); - } else { - Promise.resolve(value).then(_next, _throw); - } -} - -function _asyncToGenerator(fn) { - return function () { - var self = this, - args = arguments; - return new Promise(function (resolve, reject) { - var gen = fn.apply(self, args); - - function _next(value) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); - } - - function _throw(err) { - asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); - } - - _next(undefined); - }); - }; -} - var useProvider = function useProvider() { var _useContext = useContext(), state = _useContext.state; @@ -58658,7 +90907,7 @@ var useLocalStorage = function useLocalStorage(key) { return [value, setLocalStorage]; }; -var initialState$f = { +var initialState$g = { loading: false }; @@ -58670,14 +90919,14 @@ var useEnsAvatar = function useEnsAvatar() { var cacheBuster = useCacheBuster(); var provider = useProvider(); - var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$f), + var _React$useState3 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$g), _React$useState4 = _slicedToArray(_React$useState3, 2), state = _React$useState4[0], setState = _React$useState4[1]; var cancelQuery = useCancel(); var getEnsAvatar = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(config) { + var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(config) { var didCancel, config_, avatar, error; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { @@ -58701,7 +90950,7 @@ var useEnsAvatar = function useEnsAvatar() { case 6: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); @@ -58714,7 +90963,7 @@ var useEnsAvatar = function useEnsAvatar() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { avatar: avatar, loading: false }); @@ -58730,7 +90979,7 @@ var useEnsAvatar = function useEnsAvatar() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); @@ -58748,7 +90997,7 @@ var useEnsAvatar = function useEnsAvatar() { })); return function (_x) { - return _ref.apply(this, arguments); + return _ref4.apply(this, arguments); }; }(), [addressOrName, cancelQuery, provider]); // Fetch avatar when deps or chain changes @@ -58770,26 +91019,26 @@ var useEnsAvatar = function useEnsAvatar() { }, getEnsAvatar]; }; -var initialState$e = { +var initialState$f = { loading: false }; var useEnsLookup = function useEnsLookup() { - var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - address = _ref4.address, - skip = _ref4.skip; + var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + address = _ref5.address, + skip = _ref5.skip; var cacheBuster = useCacheBuster(); var provider = useProvider(); - var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$e), + var _React$useState5 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$f), _React$useState6 = _slicedToArray(_React$useState5, 2), state = _React$useState6[0], setState = _React$useState6[1]; var cancelQuery = useCancel(); var lookupAddress = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(config) { + var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(config) { var didCancel, config_, ens, error; return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { @@ -58813,7 +91062,7 @@ var useEnsLookup = function useEnsLookup() { case 6: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); @@ -58826,7 +91075,7 @@ var useEnsLookup = function useEnsLookup() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { ens: ens, loading: false }); @@ -58845,7 +91094,7 @@ var useEnsLookup = function useEnsLookup() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); @@ -58865,8 +91114,8 @@ var useEnsLookup = function useEnsLookup() { }, _callee2, null, [[2, 14]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x2) { + return _ref6.apply(this, arguments); }; }(), [address, cancelQuery, provider]); // Resolve name when deps or chain changes @@ -58888,26 +91137,26 @@ var useEnsLookup = function useEnsLookup() { }, lookupAddress]; }; -var initialState$d = { +var initialState$e = { loading: false }; var useEnsResolveName = function useEnsResolveName() { - var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - name = _ref5.name, - skip = _ref5.skip; + var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + name = _ref7.name, + skip = _ref7.skip; var cacheBuster = useCacheBuster(); var provider = useProvider(); - var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$d), + var _React$useState7 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$e), _React$useState8 = _slicedToArray(_React$useState7, 2), state = _React$useState8[0], setState = _React$useState8[1]; var cancelQuery = useCancel(); var resolveName = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(config) { + var _ref8 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(config) { var didCancel, config_, address, error; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { @@ -58931,7 +91180,7 @@ var useEnsResolveName = function useEnsResolveName() { case 6: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); @@ -58944,7 +91193,7 @@ var useEnsResolveName = function useEnsResolveName() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { address: address, loading: false }); @@ -58963,7 +91212,7 @@ var useEnsResolveName = function useEnsResolveName() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); @@ -58983,8 +91232,8 @@ var useEnsResolveName = function useEnsResolveName() { }, _callee3, null, [[2, 14]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x3) { + return _ref8.apply(this, arguments); }; }(), [name, cancelQuery, provider]); // Resolve name when deps or chain changes @@ -59006,26 +91255,26 @@ var useEnsResolveName = function useEnsResolveName() { }, resolveName]; }; -var initialState$c = { +var initialState$d = { loading: false }; var useEnsResolver = function useEnsResolver() { - var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - name = _ref6.name, - skip = _ref6.skip; + var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + name = _ref9.name, + skip = _ref9.skip; var cacheBuster = useCacheBuster(); var provider = useProvider(); - var _React$useState9 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$c), + var _React$useState9 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$d), _React$useState10 = _slicedToArray(_React$useState9, 2), state = _React$useState10[0], setState = _React$useState10[1]; var cancelQuery = useCancel(); var getEnsResolver = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(config) { + var _ref10 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4(config) { var didCancel, config_, resolver, error; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { @@ -59049,7 +91298,7 @@ var useEnsResolver = function useEnsResolver() { case 6: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); @@ -59062,7 +91311,7 @@ var useEnsResolver = function useEnsResolver() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: false, resolver: resolver }); @@ -59081,7 +91330,7 @@ var useEnsResolver = function useEnsResolver() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); @@ -59101,8 +91350,8 @@ var useEnsResolver = function useEnsResolver() { }, _callee4, null, [[2, 14]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x4) { + return _ref10.apply(this, arguments); }; }(), [cancelQuery, name, provider]); // Fetch avatar when deps or chain changes @@ -59127,8 +91376,8 @@ var useEnsResolver = function useEnsResolver() { var useAccount = function useAccount() { var _globalState$data; - var _ref7 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - fetchEns = _ref7.fetchEns; + var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + fetchEns = _ref11.fetchEns; var _useContext3 = useContext(), globalState = _useContext3.state, @@ -59182,20 +91431,20 @@ var useAccount = function useAccount() { }, disconnect]; }; -var initialState$b = { +var initialState$c = { loading: false }; var useBlockNumber = function useBlockNumber() { - var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - skip = _ref8.skip, - watch = _ref8.watch; + var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + skip = _ref12.skip, + watch = _ref12.watch; var cacheBuster = useCacheBuster(); var provider = useProvider(); var webSocketProvider = useWebSocketProvider(); - var _React$useState11 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$b), + var _React$useState11 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$c), _React$useState12 = _slicedToArray(_React$useState11, 2), state = _React$useState12[0], setState = _React$useState12[1]; @@ -59213,7 +91462,7 @@ var useBlockNumber = function useBlockNumber() { }); _context5.prev = 2; setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); @@ -59226,7 +91475,7 @@ var useBlockNumber = function useBlockNumber() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { blockNumber: blockNumber, loading: false }); @@ -59245,7 +91494,7 @@ var useBlockNumber = function useBlockNumber() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); @@ -59282,7 +91531,7 @@ var useBlockNumber = function useBlockNumber() { // calls the event callback after .off() has been called if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { blockNumber: blockNumber }); }); @@ -59303,16 +91552,16 @@ var useBlockNumber = function useBlockNumber() { }, getBlockNumber]; }; -var initialState$a = { +var initialState$b = { loading: false }; var useFeeData = function useFeeData() { - var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref9$formatUnits = _ref9.formatUnits, - formatUnits = _ref9$formatUnits === void 0 ? 'wei' : _ref9$formatUnits, - skip = _ref9.skip, - watch = _ref9.watch; + var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref14$formatUnits = _ref14.formatUnits, + formatUnits = _ref14$formatUnits === void 0 ? 'wei' : _ref14$formatUnits, + skip = _ref14.skip, + watch = _ref14.watch; var provider = useProvider(); @@ -59325,7 +91574,7 @@ var useFeeData = function useFeeData() { var cacheBuster = useCacheBuster(); - var _React$useState13 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$a), + var _React$useState13 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$b), _React$useState14 = _slicedToArray(_React$useState13, 2), state = _React$useState14[0], setState = _React$useState14[1]; @@ -59343,7 +91592,7 @@ var useFeeData = function useFeeData() { }); _context6.prev = 2; setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); @@ -59356,7 +91605,7 @@ var useFeeData = function useFeeData() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { feeData: feeData, loading: false }); @@ -59375,7 +91624,7 @@ var useFeeData = function useFeeData() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); @@ -59415,7 +91664,7 @@ var useFeeData = function useFeeData() { maxPriorityFeePerGas: ethers__WEBPACK_IMPORTED_MODULE_3__["utils"].formatUnits(state.feeData.maxPriorityFeePerGas, formatUnits) } : undefined; return [{ - data: state.feeData ? _objectSpread2(_objectSpread2({}, state.feeData), {}, { + data: state.feeData ? _objectSpread(_objectSpread({}, state.feeData), {}, { formatted: formatted }) : undefined, loading: state.loading, @@ -59423,18 +91672,18 @@ var useFeeData = function useFeeData() { }, getFeeData]; }; -var initialState$9 = { +var initialState$a = { loading: false }; var useBalance = function useBalance() { - var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - addressOrName = _ref10.addressOrName, - _ref10$formatUnits = _ref10.formatUnits, - formatUnits = _ref10$formatUnits === void 0 ? 'ether' : _ref10$formatUnits, - skip = _ref10.skip, - token = _ref10.token, - watch = _ref10.watch; + var _ref16 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + addressOrName = _ref16.addressOrName, + _ref16$formatUnits = _ref16.formatUnits, + formatUnits = _ref16$formatUnits === void 0 ? 'ether' : _ref16$formatUnits, + skip = _ref16.skip, + token = _ref16.token, + watch = _ref16.watch; var _useContext4 = useContext(), connector = _useContext4.state.connector; @@ -59449,15 +91698,15 @@ var useBalance = function useBalance() { _useBlockNumber4 = _slicedToArray(_useBlockNumber3, 1), blockNumber = _useBlockNumber4[0].data; - var _React$useState15 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$9), + var _React$useState15 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$a), _React$useState16 = _slicedToArray(_React$useState15, 2), state = _React$useState16[0], setState = _React$useState16[1]; var cancelQuery = useCancel(); var getBalance = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(config) { - var didCancel, _config_$formatUnits, config_, formatUnits_, balance, contract, _yield$Promise$all, _yield$Promise$all2, value, decimals, symbol, _connector$chains, _chain$nativeCurrency, _chain$nativeCurrency2, _chain$nativeCurrency3, _chain$nativeCurrency4, _value, chain, error; + var _ref17 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee7(config) { + var didCancel, _connector$chains, config_, balance, error; return regeneratorRuntime.wrap(function _callee7$(_context7) { while (1) { @@ -59482,98 +91731,57 @@ var useBalance = function useBalance() { throw new Error('address is required'); case 6: - formatUnits_ = (_config_$formatUnits = config_.formatUnits) !== null && _config_$formatUnits !== void 0 ? _config_$formatUnits : 'ether'; setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); }); - - if (!config_.token) { - _context7.next = 20; - break; - } - - contract = new ethers__WEBPACK_IMPORTED_MODULE_3__["ethers"].Contract(config_.token, wagmi_private__WEBPACK_IMPORTED_MODULE_2__["erc20ABI"], provider); - _context7.next = 12; - return Promise.all([contract.balanceOf(config_.addressOrName), contract.decimals(), contract.symbol()]); - - case 12: - _yield$Promise$all = _context7.sent; - _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3); - value = _yield$Promise$all2[0]; - decimals = _yield$Promise$all2[1]; - symbol = _yield$Promise$all2[2]; - balance = { - decimals: decimals, - formatted: ethers__WEBPACK_IMPORTED_MODULE_3__["utils"].formatUnits(value, formatUnits_), - symbol: symbol, - value: value - }; - _context7.next = 25; - break; - - case 20: - _context7.next = 22; - return provider.getBalance(config_.addressOrName); - - case 22: - _value = _context7.sent; - chain = [].concat(_toConsumableArray((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), _toConsumableArray(wagmi_private__WEBPACK_IMPORTED_MODULE_2__["defaultChains"]), _toConsumableArray(wagmi_private__WEBPACK_IMPORTED_MODULE_2__["defaultL2Chains"])).find(function (x) { - return x.id === provider.network.chainId; + _context7.next = 9; + return Object(wagmi_core__WEBPACK_IMPORTED_MODULE_2__["balanceAction"])({ + chains: [].concat(_toConsumableArray((_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []), _toConsumableArray(wagmi_core__WEBPACK_IMPORTED_MODULE_2__["defaultChains"]), _toConsumableArray(wagmi_core__WEBPACK_IMPORTED_MODULE_2__["defaultL2Chains"])), + config: config_, + provider: provider }); - balance = { - decimals: (_chain$nativeCurrency = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency2 = chain.nativeCurrency) === null || _chain$nativeCurrency2 === void 0 ? void 0 : _chain$nativeCurrency2.decimals) !== null && _chain$nativeCurrency !== void 0 ? _chain$nativeCurrency : 18, - formatted: ethers__WEBPACK_IMPORTED_MODULE_3__["utils"].formatUnits(_value, formatUnits_), - symbol: (_chain$nativeCurrency3 = chain === null || chain === void 0 ? void 0 : (_chain$nativeCurrency4 = chain.nativeCurrency) === null || _chain$nativeCurrency4 === void 0 ? void 0 : _chain$nativeCurrency4.symbol) !== null && _chain$nativeCurrency3 !== void 0 ? _chain$nativeCurrency3 : 'ETH', - value: _value - }; - case 25: - if (!didCancel) { - setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { - balance: balance, - loading: false - }); + case 9: + balance = _context7.sent; + if (!didCancel) setState(function (x) { + return _objectSpread(_objectSpread({}, x), {}, { + balance: balance, + loading: false }); - } - + }); return _context7.abrupt("return", { data: balance, error: undefined }); - case 29: - _context7.prev = 29; + case 14: + _context7.prev = 14; _context7.t0 = _context7["catch"](2); error = _context7.t0; - - if (!didCancel) { - setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { - error: error, - loading: false - }); + if (!didCancel) setState(function (x) { + return _objectSpread(_objectSpread({}, x), {}, { + error: error, + loading: false }); - } - + }); return _context7.abrupt("return", { data: undefined, error: error }); - case 34: + case 19: case "end": return _context7.stop(); } } - }, _callee7, null, [[2, 29]]); + }, _callee7, null, [[2, 14]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x5) { + return _ref17.apply(this, arguments); }; }(), [addressOrName, cancelQuery, connector, formatUnits, provider, token]); // Fetch balance when deps or chain changes @@ -59611,7 +91819,7 @@ var useBalance = function useBalance() { }, getBalance]; }; -var initialState$8 = { +var initialState$9 = { loading: false }; @@ -59623,14 +91831,14 @@ var useConnect = function useConnect() { setGlobalState = _useContext5.setState, setLastUsedConnector = _useContext5.setLastUsedConnector; - var _React$useState17 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$8), + var _React$useState17 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$9), _React$useState18 = _slicedToArray(_React$useState17, 2), state = _React$useState18[0], setState = _React$useState18[1]; var cancelQuery = useCancel(); var connect = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8(connector) { + var _ref18 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee8(connector) { var didCancel, activeConnector, data, error; return regeneratorRuntime.wrap(function _callee8$(_context8) { while (1) { @@ -59648,11 +91856,11 @@ var useConnect = function useConnect() { break; } - throw new wagmi_private__WEBPACK_IMPORTED_MODULE_2__["ConnectorAlreadyConnectedError"](); + throw new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["ConnectorAlreadyConnectedError"](); case 6: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: true, connector: connector, error: undefined @@ -59667,14 +91875,14 @@ var useConnect = function useConnect() { if (!didCancel) { // Update connector globally only after successful connection setGlobalState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { connector: connector, data: data }); }); setLastUsedConnector(connector.name); setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: false }); }); @@ -59692,7 +91900,7 @@ var useConnect = function useConnect() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { connector: undefined, error: error, loading: false @@ -59713,14 +91921,14 @@ var useConnect = function useConnect() { }, _callee8, null, [[2, 14]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x6) { + return _ref18.apply(this, arguments); }; }(), [cancelQuery, globalState.connector, setGlobalState, setLastUsedConnector]); // Keep connector in sync with global connector react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { connector: globalState.connector, error: undefined }); @@ -59738,7 +91946,7 @@ var useConnect = function useConnect() { }, connect]; }; -var initialState$7 = { +var initialState$8 = { loading: false }; @@ -59750,7 +91958,7 @@ var useNetwork = function useNetwork() { connector = _useContext6$state.connector, data = _useContext6$state.data; - var _React$useState19 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$7), + var _React$useState19 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$8), _React$useState20 = _slicedToArray(_React$useState19, 2), state = _React$useState20[0], setState = _React$useState20[1]; @@ -59758,12 +91966,12 @@ var useNetwork = function useNetwork() { var chainId = data === null || data === void 0 ? void 0 : (_data$chain = data.chain) === null || _data$chain === void 0 ? void 0 : _data$chain.id; var unsupported = data === null || data === void 0 ? void 0 : (_data$chain2 = data.chain) === null || _data$chain2 === void 0 ? void 0 : _data$chain2.unsupported; var activeChains = (_connector$chains = connector === null || connector === void 0 ? void 0 : connector.chains) !== null && _connector$chains !== void 0 ? _connector$chains : []; - var activeChain = [].concat(_toConsumableArray(activeChains), _toConsumableArray(wagmi_private__WEBPACK_IMPORTED_MODULE_2__["allChains"])).find(function (x) { + var activeChain = [].concat(_toConsumableArray(activeChains), _toConsumableArray(wagmi_core__WEBPACK_IMPORTED_MODULE_2__["allChains"])).find(function (x) { return x.id === chainId; }); var cancelQuery = useCancel(); var switchNetwork = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9(chainId) { + var _ref19 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee9(chainId) { var didCancel, chain, error; return regeneratorRuntime.wrap(function _callee9$(_context9) { while (1) { @@ -59781,13 +91989,13 @@ var useNetwork = function useNetwork() { return _context9.abrupt("return", { data: undefined, - error: new wagmi_private__WEBPACK_IMPORTED_MODULE_2__["SwitchChainError"]() + error: new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["SwitchChainError"]() }); case 4: _context9.prev = 4; setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); @@ -59800,7 +92008,7 @@ var useNetwork = function useNetwork() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: false }); }); @@ -59818,7 +92026,7 @@ var useNetwork = function useNetwork() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); @@ -59838,13 +92046,13 @@ var useNetwork = function useNetwork() { }, _callee9, null, [[4, 13]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x7) { + return _ref19.apply(this, arguments); }; }(), [cancelQuery, connector]); return [{ data: { - chain: chainId ? _objectSpread2(_objectSpread2({}, activeChain), {}, { + chain: chainId ? _objectSpread(_objectSpread({}, activeChain), {}, { id: chainId, unsupported: unsupported }) : undefined, @@ -59855,22 +92063,22 @@ var useNetwork = function useNetwork() { }, connector !== null && connector !== void 0 && connector.switchChain ? switchNetwork : undefined]; }; -var initialState$6 = { +var initialState$7 = { data: undefined, error: undefined, loading: false }; var useSigner = function useSigner() { - var _ref11 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - skip = _ref11.skip; + var _ref20 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + skip = _ref20.skip; var cacheBuster = useCacheBuster(); var _useContext7 = useContext(), connector = _useContext7.state.connector; - var _React$useState21 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$6), + var _React$useState21 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$7), _React$useState22 = _slicedToArray(_React$useState21, 2), state = _React$useState22[0], setState = _React$useState22[1]; @@ -59888,7 +92096,7 @@ var useSigner = function useSigner() { }); _context10.prev = 2; setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); @@ -59901,7 +92109,7 @@ var useSigner = function useSigner() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { data: signer, loading: false }); @@ -59917,7 +92125,7 @@ var useSigner = function useSigner() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { data: undefined, error: error, loading: false @@ -59944,25 +92152,25 @@ var useSigner = function useSigner() { return [state, getSigner]; }; -var initialState$5 = { +var initialState$6 = { loading: false }; var useSignMessage = function useSignMessage() { - var _ref12 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - message = _ref12.message; + var _ref22 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + message = _ref22.message; var _useContext8 = useContext(), connector = _useContext8.state.connector; - var _React$useState23 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$5), + var _React$useState23 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$6), _React$useState24 = _slicedToArray(_React$useState23, 2), state = _React$useState24[0], setState = _React$useState24[1]; var cancelQuery = useCancel(); var signMessage = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11(config) { + var _ref23 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee11(config) { var didCancel, config_, signer, signature, error; return regeneratorRuntime.wrap(function _callee11$(_context11) { while (1) { @@ -59990,11 +92198,11 @@ var useSignMessage = function useSignMessage() { break; } - throw new wagmi_private__WEBPACK_IMPORTED_MODULE_2__["ConnectorNotFoundError"](); + throw new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["ConnectorNotFoundError"](); case 8: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); @@ -60012,7 +92220,7 @@ var useSignMessage = function useSignMessage() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { signature: signature, loading: false }); @@ -60028,11 +92236,11 @@ var useSignMessage = function useSignMessage() { _context11.prev = 19; _context11.t0 = _context11["catch"](2); error = _context11.t0; - if (_context11.t0.code === 4001) error = new wagmi_private__WEBPACK_IMPORTED_MODULE_2__["UserRejectedRequestError"](); + if (_context11.t0.code === 4001) error = new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["UserRejectedRequestError"](); if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); @@ -60052,8 +92260,8 @@ var useSignMessage = function useSignMessage() { }, _callee11, null, [[2, 19]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x8) { + return _ref23.apply(this, arguments); }; }(), [cancelQuery, connector, message]); return [{ @@ -60063,6 +92271,145 @@ var useSignMessage = function useSignMessage() { }, signMessage]; }; +var initialState$5 = { + loading: false +}; + +var useSignTypedData = function useSignTypedData() { + var _ref24 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + domain = _ref24.domain, + types = _ref24.types, + value = _ref24.value; + + var _useContext9 = useContext(), + connector = _useContext9.state.connector; + + var _React$useState25 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$5), + _React$useState26 = _slicedToArray(_React$useState25, 2), + state = _React$useState26[0], + setState = _React$useState26[1]; + + var cancelQuery = useCancel(); + var signTypedData = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { + var _ref25 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12(config) { + var didCancel, config_, signer, signature, error; + return regeneratorRuntime.wrap(function _callee12$(_context12) { + while (1) { + switch (_context12.prev = _context12.next) { + case 0: + didCancel = false; + cancelQuery(function () { + didCancel = true; + }); + _context12.prev = 2; + config_ = config !== null && config !== void 0 ? config : { + domain: domain, + types: types, + value: value + }; + + if (config_.domain) { + _context12.next = 6; + break; + } + + throw new Error('domain is required'); + + case 6: + if (config_.types) { + _context12.next = 8; + break; + } + + throw new Error('type is required'); + + case 8: + if (config_.value) { + _context12.next = 10; + break; + } + + throw new Error('value is required'); + + case 10: + if (connector) { + _context12.next = 12; + break; + } + + throw new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["ConnectorNotFoundError"](); + + case 12: + setState(function (x) { + return _objectSpread(_objectSpread({}, x), {}, { + error: undefined, + loading: true + }); + }); + _context12.next = 15; + return connector.getSigner(); + + case 15: + signer = _context12.sent; + _context12.next = 18; + return signer._signTypedData(config_.domain, config_.types, config_.value); + + case 18: + signature = _context12.sent; + + if (!didCancel) { + setState(function (x) { + return _objectSpread(_objectSpread({}, x), {}, { + signature: signature, + loading: false + }); + }); + } + + return _context12.abrupt("return", { + data: signature, + error: undefined + }); + + case 23: + _context12.prev = 23; + _context12.t0 = _context12["catch"](2); + error = _context12.t0; + if (_context12.t0.code === 4001) error = new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["UserRejectedRequestError"](); + + if (!didCancel) { + setState(function (x) { + return _objectSpread(_objectSpread({}, x), {}, { + error: error, + loading: false + }); + }); + } + + return _context12.abrupt("return", { + data: undefined, + error: error + }); + + case 29: + case "end": + return _context12.stop(); + } + } + }, _callee12, null, [[2, 23]]); + })); + + return function (_x9) { + return _ref25.apply(this, arguments); + }; + }(), [cancelQuery, connector, domain, types, value]); + return [{ + data: state.signature, + error: state.error, + loading: state.loading + }, signTypedData]; +}; + var getContract = function getContract(_ref) { var addressOrName = _ref.addressOrName, contractInterface = _ref.contractInterface, @@ -60084,12 +92431,12 @@ var useContract = function useContract(_ref2) { }; var useContractEvent = function useContractEvent(contractConfig, eventName, listener) { - var _ref13 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, - once = _ref13.once; + var _ref26 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}, + once = _ref26.once; var provider = useProvider(); var webSocketProvider = useWebSocketProvider(); - var contract = useContract(_objectSpread2({ + var contract = useContract(_objectSpread({ signerOrProvider: webSocketProvider !== null && webSocketProvider !== void 0 ? webSocketProvider : provider }, contractConfig)); var listenerRef = react__WEBPACK_IMPORTED_MODULE_0__["useRef"](listener); @@ -60119,15 +92466,15 @@ var initialState$4 = { }; var useContractRead = function useContractRead(contractConfig, functionName) { - var _ref14 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, - args = _ref14.args, - overrides = _ref14.overrides, - skip = _ref14.skip, - watch = _ref14.watch; + var _ref27 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, + args = _ref27.args, + overrides = _ref27.overrides, + skip = _ref27.skip, + watch = _ref27.watch; var cacheBuster = useCacheBuster(); var provider = useProvider(); - var contract = useContract(_objectSpread2({ + var contract = useContract(_objectSpread({ signerOrProvider: provider }, contractConfig)); @@ -60138,85 +92485,85 @@ var useContractRead = function useContractRead(contractConfig, functionName) { _useBlockNumber6 = _slicedToArray(_useBlockNumber5, 1), blockNumber = _useBlockNumber6[0].data; - var _React$useState25 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$4), - _React$useState26 = _slicedToArray(_React$useState25, 2), - state = _React$useState26[0], - setState = _React$useState26[1]; + var _React$useState27 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$4), + _React$useState28 = _slicedToArray(_React$useState27, 2), + state = _React$useState28[0], + setState = _React$useState28[1]; var cancelQuery = useCancel(); var read = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee12(config) { + var _ref28 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13(config) { var didCancel, config_, params, response, error; - return regeneratorRuntime.wrap(function _callee12$(_context12) { + return regeneratorRuntime.wrap(function _callee13$(_context13) { while (1) { - switch (_context12.prev = _context12.next) { + switch (_context13.prev = _context13.next) { case 0: didCancel = false; cancelQuery(function () { didCancel = true; }); - _context12.prev = 2; + _context13.prev = 2; config_ = config !== null && config !== void 0 ? config : { args: args, overrides: overrides }; params = [].concat(_toConsumableArray(Array.isArray(config_.args) ? config_.args : config_.args ? [config_.args] : []), _toConsumableArray(config_.overrides ? [config_.overrides] : [])); setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true, response: undefined }); }); - _context12.next = 8; + _context13.next = 8; return contract[functionName].apply(contract, _toConsumableArray(params)); case 8: - response = _context12.sent; + response = _context13.sent; if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: false, response: response }); }); } - return _context12.abrupt("return", { + return _context13.abrupt("return", { data: response, error: undefined }); case 13: - _context12.prev = 13; - _context12.t0 = _context12["catch"](2); - error = _context12.t0; + _context13.prev = 13; + _context13.t0 = _context13["catch"](2); + error = _context13.t0; if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); }); } - return _context12.abrupt("return", { + return _context13.abrupt("return", { data: undefined, error: error }); case 18: case "end": - return _context12.stop(); + return _context13.stop(); } } - }, _callee12, null, [[2, 13]]); + }, _callee13, null, [[2, 13]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x10) { + return _ref28.apply(this, arguments); }; }(), [args, cancelQuery, contract, functionName, overrides]); /* eslint-disable react-hooks/exhaustive-deps */ @@ -60250,110 +92597,110 @@ var initialState$3 = { }; var useContractWrite = function useContractWrite(contractConfig, functionName) { - var _ref15 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, - args = _ref15.args, - overrides = _ref15.overrides; + var _ref29 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, + args = _ref29.args, + overrides = _ref29.overrides; - var _useContext9 = useContext(), - connector = _useContext9.state.connector; + var _useContext10 = useContext(), + connector = _useContext10.state.connector; var contract = useContract(contractConfig); - var _React$useState27 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$3), - _React$useState28 = _slicedToArray(_React$useState27, 2), - state = _React$useState28[0], - setState = _React$useState28[1]; + var _React$useState29 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$3), + _React$useState30 = _slicedToArray(_React$useState29, 2), + state = _React$useState30[0], + setState = _React$useState30[1]; var cancelQuery = useCancel(); var write = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee13(config) { + var _ref30 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14(config) { var didCancel, config_, params, signer, contract_, response, error; - return regeneratorRuntime.wrap(function _callee13$(_context13) { + return regeneratorRuntime.wrap(function _callee14$(_context14) { while (1) { - switch (_context13.prev = _context13.next) { + switch (_context14.prev = _context14.next) { case 0: didCancel = false; cancelQuery(function () { didCancel = true; }); - _context13.prev = 2; + _context14.prev = 2; config_ = config !== null && config !== void 0 ? config : { args: args, overrides: overrides }; if (connector) { - _context13.next = 6; + _context14.next = 6; break; } - throw new wagmi_private__WEBPACK_IMPORTED_MODULE_2__["ConnectorNotFoundError"](); + throw new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["ConnectorNotFoundError"](); case 6: params = [].concat(_toConsumableArray(Array.isArray(config_.args) ? config_.args : config_.args ? [config_.args] : []), _toConsumableArray(config_.overrides ? [config_.overrides] : [])); setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true, response: undefined }); }); - _context13.next = 10; + _context14.next = 10; return connector.getSigner(); case 10: - signer = _context13.sent; + signer = _context14.sent; contract_ = contract.connect(signer); - _context13.next = 14; + _context14.next = 14; return contract_[functionName].apply(contract_, _toConsumableArray(params)); case 14: - response = _context13.sent; + response = _context14.sent; if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: false, response: response }); }); } - return _context13.abrupt("return", { + return _context14.abrupt("return", { data: response, error: undefined }); case 19: - _context13.prev = 19; - _context13.t0 = _context13["catch"](2); - error = _context13.t0; - if (_context13.t0.code === 4001) error = new wagmi_private__WEBPACK_IMPORTED_MODULE_2__["UserRejectedRequestError"](); + _context14.prev = 19; + _context14.t0 = _context14["catch"](2); + error = _context14.t0; + if (_context14.t0.code === 4001) error = new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["UserRejectedRequestError"](); if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); }); } - return _context13.abrupt("return", { + return _context14.abrupt("return", { data: undefined, error: error }); case 25: case "end": - return _context13.stop(); + return _context14.stop(); } } - }, _callee13, null, [[2, 19]]); + }, _callee14, null, [[2, 19]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x11) { + return _ref30.apply(this, arguments); }; }(), [args, cancelQuery, connector, contract, functionName, overrides]); return [{ @@ -60368,66 +92715,66 @@ var initialState$2 = { }; var useToken = function useToken() { - var _ref16 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - address = _ref16.address, - _ref16$formatUnits = _ref16.formatUnits, - formatUnits = _ref16$formatUnits === void 0 ? 'ether' : _ref16$formatUnits, - skip = _ref16.skip; + var _ref31 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + address = _ref31.address, + _ref31$formatUnits = _ref31.formatUnits, + formatUnits = _ref31$formatUnits === void 0 ? 'ether' : _ref31$formatUnits, + skip = _ref31.skip; - var _useContext10 = useContext(), - connector = _useContext10.state.connector; + var _useContext11 = useContext(), + connector = _useContext11.state.connector; var provider = useProvider(); - var _React$useState29 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$2), - _React$useState30 = _slicedToArray(_React$useState29, 2), - state = _React$useState30[0], - setState = _React$useState30[1]; + var _React$useState31 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$2), + _React$useState32 = _slicedToArray(_React$useState31, 2), + state = _React$useState32[0], + setState = _React$useState32[1]; var cancelQuery = useCancel(); var getToken = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee14(config) { - var didCancel, _config_$formatUnits, config_, contract, formatUnits_, _yield$Promise$all3, _yield$Promise$all4, symbol, decimals, totalSupply, token, error; + var _ref32 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15(config) { + var didCancel, _config_$formatUnits, config_, contract, formatUnits_, _yield$Promise$all, _yield$Promise$all2, symbol, decimals, totalSupply, token, error; - return regeneratorRuntime.wrap(function _callee14$(_context14) { + return regeneratorRuntime.wrap(function _callee15$(_context15) { while (1) { - switch (_context14.prev = _context14.next) { + switch (_context15.prev = _context15.next) { case 0: didCancel = false; cancelQuery(function () { didCancel = true; }); - _context14.prev = 2; + _context15.prev = 2; config_ = config !== null && config !== void 0 ? config : { address: address, formatUnits: formatUnits }; if (config_.address) { - _context14.next = 6; + _context15.next = 6; break; } throw new Error('address is required'); case 6: - contract = new ethers__WEBPACK_IMPORTED_MODULE_3__["ethers"].Contract(config_.address, wagmi_private__WEBPACK_IMPORTED_MODULE_2__["erc20ABI"], provider); + contract = new ethers__WEBPACK_IMPORTED_MODULE_3__["ethers"].Contract(config_.address, wagmi_core__WEBPACK_IMPORTED_MODULE_2__["erc20ABI"], provider); formatUnits_ = (_config_$formatUnits = config_.formatUnits) !== null && _config_$formatUnits !== void 0 ? _config_$formatUnits : 'ether'; setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: undefined, loading: true }); }); - _context14.next = 11; + _context15.next = 11; return Promise.all([contract.symbol(), contract.decimals(), contract.totalSupply()]); case 11: - _yield$Promise$all3 = _context14.sent; - _yield$Promise$all4 = _slicedToArray(_yield$Promise$all3, 3); - symbol = _yield$Promise$all4[0]; - decimals = _yield$Promise$all4[1]; - totalSupply = _yield$Promise$all4[2]; + _yield$Promise$all = _context15.sent; + _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 3); + symbol = _yield$Promise$all2[0]; + decimals = _yield$Promise$all2[1]; + totalSupply = _yield$Promise$all2[2]; token = { address: config_.address, decimals: decimals, @@ -60440,85 +92787,85 @@ var useToken = function useToken() { if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { token: token, loading: false }); }); } - return _context14.abrupt("return", { + return _context15.abrupt("return", { data: token, error: undefined }); case 21: - _context14.prev = 21; - _context14.t0 = _context14["catch"](2); - error = _context14.t0; + _context15.prev = 21; + _context15.t0 = _context15["catch"](2); + error = _context15.t0; if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); }); } - return _context14.abrupt("return", { + return _context15.abrupt("return", { data: undefined, error: error }); case 26: - case "end": - return _context14.stop(); - } - } - }, _callee14, null, [[2, 21]]); - })); - - return function (_x) { - return _ref.apply(this, arguments); - }; - }(), [address, cancelQuery, formatUnits, provider]); - var watchToken = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee15(token) { - return regeneratorRuntime.wrap(function _callee15$(_context15) { - while (1) { - switch (_context15.prev = _context15.next) { - case 0: - if (connector !== null && connector !== void 0 && connector.watchAsset) { - _context15.next = 2; - break; - } - - return _context15.abrupt("return", false); - - case 2: - _context15.prev = 2; - _context15.next = 5; - return connector.watchAsset(token); - - case 5: - return _context15.abrupt("return", true); - - case 8: - _context15.prev = 8; - _context15.t0 = _context15["catch"](2); - return _context15.abrupt("return", _context15.t0); - - case 11: case "end": return _context15.stop(); } } - }, _callee15, null, [[2, 8]]); + }, _callee15, null, [[2, 21]]); })); - return function (_x2) { - return _ref2.apply(this, arguments); + return function (_x12) { + return _ref32.apply(this, arguments); + }; + }(), [address, cancelQuery, formatUnits, provider]); + var watchToken = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { + var _ref33 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee16(token) { + return regeneratorRuntime.wrap(function _callee16$(_context16) { + while (1) { + switch (_context16.prev = _context16.next) { + case 0: + if (connector !== null && connector !== void 0 && connector.watchAsset) { + _context16.next = 2; + break; + } + + return _context16.abrupt("return", false); + + case 2: + _context16.prev = 2; + _context16.next = 5; + return connector.watchAsset(token); + + case 5: + return _context16.abrupt("return", true); + + case 8: + _context16.prev = 8; + _context16.t0 = _context16["catch"](2); + return _context16.abrupt("return", _context16.t0); + + case 11: + case "end": + return _context16.stop(); + } + } + }, _callee16, null, [[2, 8]]); + })); + + return function (_x13) { + return _ref33.apply(this, arguments); }; }(), [connector]); /* eslint-disable react-hooks/exhaustive-deps */ @@ -60534,7 +92881,7 @@ var useToken = function useToken() { /* eslint-enable react-hooks/exhaustive-deps */ return [{ - data: state.token ? _objectSpread2(_objectSpread2({}, state.token), {}, { + data: state.token ? _objectSpread(_objectSpread({}, state.token), {}, { address: address }) : undefined, error: state.error, @@ -60547,36 +92894,36 @@ var initialState$1 = { }; var useTransaction = function useTransaction() { - var _ref17 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - request = _ref17.request; + var _ref34 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + request = _ref34.request; - var _useContext11 = useContext(), - connector = _useContext11.state.connector; + var _useContext12 = useContext(), + connector = _useContext12.state.connector; - var _React$useState31 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$1), - _React$useState32 = _slicedToArray(_React$useState31, 2), - state = _React$useState32[0], - setState = _React$useState32[1]; + var _React$useState33 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState$1), + _React$useState34 = _slicedToArray(_React$useState33, 2), + state = _React$useState34[0], + setState = _React$useState34[1]; var cancelQuery = useCancel(); var sendTransaction = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee16(config) { + var _ref35 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee17(config) { var didCancel, config_, signer, transaction, error; - return regeneratorRuntime.wrap(function _callee16$(_context16) { + return regeneratorRuntime.wrap(function _callee17$(_context17) { while (1) { - switch (_context16.prev = _context16.next) { + switch (_context17.prev = _context17.next) { case 0: didCancel = false; cancelQuery(function () { didCancel = true; }); - _context16.prev = 2; + _context17.prev = 2; config_ = config !== null && config !== void 0 ? config : { request: request }; if (config_.request) { - _context16.next = 6; + _context17.next = 6; break; } @@ -60584,73 +92931,73 @@ var useTransaction = function useTransaction() { case 6: if (connector) { - _context16.next = 8; + _context17.next = 8; break; } - throw new wagmi_private__WEBPACK_IMPORTED_MODULE_2__["ConnectorNotFoundError"](); + throw new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["ConnectorNotFoundError"](); case 8: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: true }); }); - _context16.next = 11; + _context17.next = 11; return connector.getSigner(); case 11: - signer = _context16.sent; - _context16.next = 14; + signer = _context17.sent; + _context17.next = 14; return signer.sendTransaction(config_.request); case 14: - transaction = _context16.sent; + transaction = _context17.sent; if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: false, transaction: transaction }); }); } - return _context16.abrupt("return", { + return _context17.abrupt("return", { data: transaction, error: undefined }); case 19: - _context16.prev = 19; - _context16.t0 = _context16["catch"](2); - error = _context16.t0; - if (_context16.t0.code === 4001) error = new wagmi_private__WEBPACK_IMPORTED_MODULE_2__["UserRejectedRequestError"](); + _context17.prev = 19; + _context17.t0 = _context17["catch"](2); + error = _context17.t0; + if (_context17.t0.code === 4001) error = new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["UserRejectedRequestError"](); if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); }); } - return _context16.abrupt("return", { + return _context17.abrupt("return", { data: undefined, error: error }); case 25: case "end": - return _context16.stop(); + return _context17.stop(); } } - }, _callee16, null, [[2, 19]]); + }, _callee17, null, [[2, 19]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x14) { + return _ref35.apply(this, arguments); }; }(), [cancelQuery, connector, request]); return [{ @@ -60665,33 +93012,33 @@ var initialState = { }; var useWaitForTransaction = function useWaitForTransaction() { - var _ref18 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - confirmations = _ref18.confirmations, - hash = _ref18.hash, - skip = _ref18.skip, - timeout = _ref18.timeout, - wait_ = _ref18.wait; + var _ref36 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + confirmations = _ref36.confirmations, + hash = _ref36.hash, + skip = _ref36.skip, + timeout = _ref36.timeout, + wait_ = _ref36.wait; var provider = useProvider(); - var _React$useState33 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState), - _React$useState34 = _slicedToArray(_React$useState33, 2), - state = _React$useState34[0], - setState = _React$useState34[1]; + var _React$useState35 = react__WEBPACK_IMPORTED_MODULE_0__["useState"](initialState), + _React$useState36 = _slicedToArray(_React$useState35, 2), + state = _React$useState36[0], + setState = _React$useState36[1]; var cancelQuery = useCancel(); var wait = react__WEBPACK_IMPORTED_MODULE_0__["useCallback"]( /*#__PURE__*/function () { - var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee17(config) { + var _ref37 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee18(config) { var didCancel, config_, promise, receipt, error; - return regeneratorRuntime.wrap(function _callee17$(_context17) { + return regeneratorRuntime.wrap(function _callee18$(_context18) { while (1) { - switch (_context17.prev = _context17.next) { + switch (_context18.prev = _context18.next) { case 0: didCancel = false; cancelQuery(function () { didCancel = true; }); - _context17.prev = 2; + _context18.prev = 2; config_ = config !== null && config !== void 0 ? config : { confirmations: confirmations, hash: hash, @@ -60700,7 +93047,7 @@ var useWaitForTransaction = function useWaitForTransaction() { }; if (!(!config_.hash && !config_.wait)) { - _context17.next = 6; + _context18.next = 6; break; } @@ -60708,22 +93055,22 @@ var useWaitForTransaction = function useWaitForTransaction() { case 6: if (!config_.wait) { - _context17.next = 10; + _context18.next = 10; break; } promise = config_.wait(config_.confirmations); - _context17.next = 15; + _context18.next = 15; break; case 10: if (!config_.hash) { - _context17.next = 14; + _context18.next = 14; break; } promise = provider.waitForTransaction(config_.hash, config_.confirmations, config_.timeout); - _context17.next = 15; + _context18.next = 15; break; case 14: @@ -60731,59 +93078,59 @@ var useWaitForTransaction = function useWaitForTransaction() { case 15: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: true }); }); - _context17.next = 18; + _context18.next = 18; return promise; case 18: - receipt = _context17.sent; + receipt = _context18.sent; if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { loading: false, receipt: receipt }); }); } - return _context17.abrupt("return", { + return _context18.abrupt("return", { data: receipt, error: undefined }); case 23: - _context17.prev = 23; - _context17.t0 = _context17["catch"](2); - error = _context17.t0; + _context18.prev = 23; + _context18.t0 = _context18["catch"](2); + error = _context18.t0; if (!didCancel) { setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error, loading: false }); }); } - return _context17.abrupt("return", { + return _context18.abrupt("return", { data: undefined, error: error }); case 28: case "end": - return _context17.stop(); + return _context18.stop(); } } - }, _callee17, null, [[2, 23]]); + }, _callee18, null, [[2, 23]]); })); - return function (_x) { - return _ref.apply(this, arguments); + return function (_x15) { + return _ref37.apply(this, arguments); }; }(), [cancelQuery, confirmations, hash, provider, timeout, wait_]); // Fetch balance when deps or chain changes @@ -60821,7 +93168,7 @@ var Provider = function Provider(_ref) { autoConnect = _ref$autoConnect === void 0 ? false : _ref$autoConnect, children = _ref.children, _ref$connectors = _ref.connectors, - connectors_ = _ref$connectors === void 0 ? [new wagmi_private__WEBPACK_IMPORTED_MODULE_2__["InjectedConnector"]()] : _ref$connectors, + connectors_ = _ref$connectors === void 0 ? [new wagmi_core__WEBPACK_IMPORTED_MODULE_2__["InjectedConnector"]()] : _ref$connectors, _ref$connectorStorage = _ref.connectorStorageKey, connectorStorageKey = _ref$connectorStorage === void 0 ? 'wagmi.wallet' : _ref$connectorStorage, _ref$provider = _ref.provider, @@ -60833,13 +93180,13 @@ var Provider = function Provider(_ref) { lastUsedConnector = _useLocalStorage2[0], setLastUsedConnector = _useLocalStorage2[1]; - var _React$useState35 = react__WEBPACK_IMPORTED_MODULE_0__["useState"]({ + var _React$useState37 = react__WEBPACK_IMPORTED_MODULE_0__["useState"]({ cacheBuster: 1, connecting: autoConnect }), - _React$useState36 = _slicedToArray(_React$useState35, 2), - state = _React$useState36[0], - setState = _React$useState36[1]; + _React$useState38 = _slicedToArray(_React$useState37, 2), + state = _React$useState38[0], + setState = _React$useState38[1]; var connectors = react__WEBPACK_IMPORTED_MODULE_0__["useMemo"](function () { var _state$data, _state$data$chain; @@ -60874,135 +93221,136 @@ var Provider = function Provider(_ref) { react__WEBPACK_IMPORTED_MODULE_0__["useEffect"](function () { if (!autoConnect) return; - _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee18() { - var sorted, _loop, _iterator, _step, connector, _ret; + _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee19() { + var sorted, _iterator, _step, _loop, _ret; - return regeneratorRuntime.wrap(function _callee18$(_context19) { + return regeneratorRuntime.wrap(function _callee19$(_context20) { while (1) { - switch (_context19.prev = _context19.next) { + switch (_context20.prev = _context20.next) { case 0: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { connecting: true }); }); sorted = lastUsedConnector ? _toConsumableArray(connectors).sort(function (x) { return x.name === lastUsedConnector ? -1 : 1; }) : connectors; - _loop = /*#__PURE__*/regeneratorRuntime.mark(function _loop(connector) { - var isAuthorized, data; - return regeneratorRuntime.wrap(function _loop$(_context18) { + _iterator = _createForOfIteratorHelper(sorted); + _context20.prev = 3; + _loop = /*#__PURE__*/regeneratorRuntime.mark(function _loop() { + var connector, isAuthorized, data; + return regeneratorRuntime.wrap(function _loop$(_context19) { while (1) { - switch (_context18.prev = _context18.next) { + switch (_context19.prev = _context19.next) { case 0: + connector = _step.value; + if (!(!connector.ready || !connector.isAuthorized)) { - _context18.next = 2; + _context19.next = 3; break; } - return _context18.abrupt("return", "continue"); + return _context19.abrupt("return", "continue"); - case 2: - _context18.next = 4; + case 3: + _context19.next = 5; return connector.isAuthorized(); - case 4: - isAuthorized = _context18.sent; + case 5: + isAuthorized = _context19.sent; if (isAuthorized) { - _context18.next = 7; + _context19.next = 8; break; } - return _context18.abrupt("return", "continue"); + return _context19.abrupt("return", "continue"); - case 7: - _context18.next = 9; + case 8: + _context19.next = 10; return connector.connect(); - case 9: - data = _context18.sent; + case 10: + data = _context19.sent; setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { connector: connector, data: data }); }); - return _context18.abrupt("return", "break"); + return _context19.abrupt("return", "break"); - case 12: + case 13: case "end": - return _context18.stop(); + return _context19.stop(); } } }, _loop); }); - _iterator = _createForOfIteratorHelper(sorted); - _context19.prev = 4; _iterator.s(); case 6: if ((_step = _iterator.n()).done) { - _context19.next = 16; + _context20.next = 15; break; } - connector = _step.value; - return _context19.delegateYield(_loop(connector), "t0", 9); + return _context20.delegateYield(_loop(), "t0", 8); - case 9: - _ret = _context19.t0; + case 8: + _ret = _context20.t0; if (!(_ret === "continue")) { - _context19.next = 12; + _context20.next = 11; break; } - return _context19.abrupt("continue", 14); + return _context20.abrupt("continue", 13); - case 12: + case 11: if (!(_ret === "break")) { - _context19.next = 14; + _context20.next = 13; break; } - return _context19.abrupt("break", 16); + return _context20.abrupt("break", 15); - case 14: - _context19.next = 6; + case 13: + _context20.next = 6; break; - case 16: - _context19.next = 21; + case 15: + _context20.next = 20; break; - case 18: - _context19.prev = 18; - _context19.t1 = _context19["catch"](4); + case 17: + _context20.prev = 17; + _context20.t1 = _context20["catch"](3); - _iterator.e(_context19.t1); + _iterator.e(_context20.t1); - case 21: - _context19.prev = 21; + case 20: + _context20.prev = 20; _iterator.f(); - return _context19.finish(21); + return _context20.finish(20); - case 24: + case 23: setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { connecting: false }); }); - case 25: + case 24: case "end": - return _context19.stop(); + return _context20.stop(); } } - }, _callee18, null, [[4, 18, 21, 24]]); + }, _callee19, null, [[3, 17, 20, 23]]); }))(); }, []); /* eslint-enable react-hooks/exhaustive-deps */ @@ -61020,9 +93368,9 @@ var Provider = function Provider(_ref) { var onChange = function onChange(data) { return setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { cacheBuster: x.cacheBuster + 1, - data: _objectSpread2(_objectSpread2({}, x.data), data) + data: _objectSpread(_objectSpread({}, x.data), data) }); }); }; @@ -61035,7 +93383,7 @@ var Provider = function Provider(_ref) { var onError = function onError(error) { return setState(function (x) { - return _objectSpread2(_objectSpread2({}, x), {}, { + return _objectSpread(_objectSpread({}, x), {}, { error: error }); }); @@ -61264,6 +93612,19 @@ Object(reactR__WEBPACK_IMPORTED_MODULE_0__["reactShinyInput"])('.metamaskConnect /***/ }), /***/ 0: +/*!********************************************************!*\ + !*** multi babel-polyfill ./srcjs/metamaskConnect.jsx ***! + \********************************************************/ +/*! no static exports found */ +/***/ (function(module, exports, __webpack_require__) { + +__webpack_require__(/*! babel-polyfill */"./node_modules/babel-polyfill/lib/index.js"); +module.exports = __webpack_require__(/*! /Users/angelaminster/metamaskConnectr/srcjs/metamaskConnect.jsx */"./srcjs/metamaskConnect.jsx"); + + +/***/ }), + +/***/ 1: /*!************************!*\ !*** buffer (ignored) ***! \************************/ @@ -61274,7 +93635,7 @@ Object(reactR__WEBPACK_IMPORTED_MODULE_0__["reactShinyInput"])('.metamaskConnect /***/ }), -/***/ 1: +/***/ 2: /*!************************!*\ !*** buffer (ignored) ***! \************************/ diff --git a/metamaskConnectr/inst/www/metamaskConnectr/metamaskConnect/metamaskConnect.js.map b/metamaskConnectr/inst/www/metamaskConnectr/metamaskConnect/metamaskConnect.js.map index d640ca2..2a3b6da 100644 --- a/metamaskConnectr/inst/www/metamaskConnectr/metamaskConnect/metamaskConnect.js.map +++ b/metamaskConnectr/inst/www/metamaskConnectr/metamaskConnect/metamaskConnect.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../src.ts/_version.ts","webpack:///../src.ts/abi-coder.ts","webpack:///../../src.ts/coders/abstract-coder.ts","webpack:///../../src.ts/coders/address.ts","webpack:///../../src.ts/coders/anonymous.ts","webpack:///../../src.ts/coders/array.ts","webpack:///../../src.ts/coders/boolean.ts","webpack:///../../src.ts/coders/bytes.ts","webpack:///../../src.ts/coders/fixed-bytes.ts","webpack:///../../src.ts/coders/null.ts","webpack:///../../src.ts/coders/number.ts","webpack:///../../src.ts/coders/string.ts","webpack:///../../src.ts/coders/tuple.ts","webpack:///../src.ts/fragments.ts","webpack:///../src.ts/index.ts","webpack:///../src.ts/interface.ts","webpack:///../src.ts/browser-base64.ts","webpack:///../src.ts/bignumber.ts","webpack:///../src.ts/fixednumber.ts","webpack:///../src.ts/addresses.ts","webpack:///../src.ts/bignumbers.ts","webpack:///../src.ts/hashes.ts","webpack:///../src.ts/strings.ts","webpack:///../src.ts/id.ts","webpack:///../src.ts/message.ts","webpack:///../src.ts/namehash.ts","webpack:///../src.ts/typed-data.ts","webpack:///../src.ts/crowdsale.ts","webpack:///../src.ts/inspect.ts","webpack:///../src.ts/keystore.ts","webpack:///../src.ts/utils.ts","webpack:///../src.ts/browser-pbkdf2.ts","webpack:///../src.ts/alchemy-provider.ts","webpack:///../src.ts/base-provider.ts","webpack:///../src.ts/cloudflare-provider.ts","webpack:///../src.ts/etherscan-provider.ts","webpack:///../src.ts/fallback-provider.ts","webpack:///../src.ts/formatter.ts","webpack:///../src.ts/infura-provider.ts","webpack:///../src.ts/browser-ipc-provider.ts","webpack:///../src.ts/json-rpc-batch-provider.ts","webpack:///../src.ts/json-rpc-provider.ts","webpack:///../src.ts/nodesmith-provider.ts","webpack:///../src.ts/pocket-provider.ts","webpack:///../src.ts/url-json-rpc-provider.ts","webpack:///../src.ts/web3-provider.ts","webpack:///../src.ts/websocket-provider.ts","webpack:///../src.ts/browser-ws.ts","webpack:///../src.ts/browser-random.ts","webpack:///../src.ts/shuffle.ts","webpack:///../src.ts/browser-sha2.ts","webpack:///../src.ts/types.ts","webpack:///../../../node_modules/minimalistic-assert/index.js","webpack:///../../../node_modules/minimalistic-crypto-utils/lib/utils.js","webpack:///../../../node_modules/elliptic/lib/elliptic/utils.js","webpack:///../../../node_modules/elliptic/lib/elliptic/curve/base.js","webpack:///../../../node_modules/inherits/inherits_browser.js","webpack:///../../../node_modules/elliptic/lib/elliptic/curve/short.js","webpack:///../../../node_modules/elliptic/lib/elliptic/curve/index.js","webpack:///../../../node_modules/elliptic/lib/elliptic/curves.js","webpack:///../../../node_modules/hmac-drbg/lib/hmac-drbg.js","webpack:///../../../node_modules/elliptic/lib/elliptic/ec/key.js","webpack:///../../../node_modules/elliptic/lib/elliptic/ec/signature.js","webpack:///../../../node_modules/elliptic/lib/elliptic/ec/index.js","webpack:///../../../node_modules/elliptic/lib/elliptic.js","webpack:///elliptic.js","webpack:///../src.ts/bytes32.ts","webpack:///../src.ts/idna.ts","webpack:///../src.ts/utf8.ts","webpack:///../src.ts/browser-geturl.ts","webpack:///../src.ts/lang-en.ts","webpack:///../src.ts/wordlist.ts","webpack:///../src.ts/browser-wordlists.ts","webpack:///../../src/browser.ts","webpack:///../../src/index.ts","webpack:///../../src/json.ts","webpack:///../../src/local.ts","webpack:///../../src/mobile.ts","webpack:///../../src/registry.ts","webpack:///../../src/errors.ts","webpack:///../../src/events.ts","webpack:///../../src/storage.ts","webpack:///../../src/url.ts","webpack:///../../../src/browser/aes.ts","webpack:///../../../src/browser/hmac.ts","webpack:///../../../src/browser/index.ts","webpack:///../../../src/browser/sha2.ts","webpack:///../../../src/constants/default.ts","webpack:///../../../src/constants/encoding.ts","webpack:///../../../src/constants/error.ts","webpack:///../../../src/constants/index.ts","webpack:///../../../src/constants/length.ts","webpack:///../../../src/constants/operations.ts","webpack:///../../../src/helpers/env.ts","webpack:///../../../src/helpers/index.ts","webpack:///../../../src/helpers/pkcs7.ts","webpack:///../../../src/helpers/validators.ts","webpack:///../../../src/lib/browser.ts","webpack:///../../src/crypto.ts","webpack:///../../src/env.ts","webpack:///../../src/http.ts","webpack:///../../src/provider.ts","webpack:///../../src/misc.ts","webpack:///../../src/constants.ts","webpack:///../../src/error.ts","webpack:///../../src/format.ts","webpack:///../../src/routing.ts","webpack:///../../src/types.ts","webpack:///../../src/validators.ts","webpack:///../../src/node.ts","webpack:///../../src/browser/assets/style.ts","webpack:///../../../../../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","webpack:///../../src/browser/assets/logo.ts","webpack:///../../src/browser/constants/index.ts","webpack:///../../src/browser/components/Header.tsx","webpack:///../../src/browser/components/ConnectButton.tsx","webpack:///../../src/browser/assets/caret.ts","webpack:///../../src/browser/components/WalletButton.tsx","webpack:///../../src/browser/components/WalletIcon.tsx","webpack:///../../src/browser/components/LinkDisplay.tsx","webpack:///../../src/browser/components/Notification.tsx","webpack:///../../src/browser/components/QRCodeDisplay.tsx","webpack:///../../src/browser/components/Modal.tsx","webpack:///../../src/browser/languages/de.ts","webpack:///../../src/browser/languages/en.ts","webpack:///../../src/browser/languages/es.ts","webpack:///../../src/browser/languages/fr.ts","webpack:///../../src/browser/languages/ko.ts","webpack:///../../src/browser/languages/pt.ts","webpack:///../../src/browser/languages/zh.ts","webpack:///../../src/browser/languages/fa.ts","webpack:///../../src/browser/languages/index.ts","webpack:///../../src/browser/index.tsx","webpack:///../src/util.js","webpack:///../src/PureComponent.js","webpack:///../src/memo.js","webpack:///../src/forwardRef.js","webpack:///../src/Children.js","webpack:///../src/suspense.js","webpack:///../src/suspense-list.js","webpack:///../src/portals.js","webpack:///../src/render.js","webpack:///../src/events.js","webpack:///../src/index.js","webpack:///../src/constants.js","webpack:///../src/options.js","webpack:///../src/create-element.js","webpack:///../src/component.js","webpack:///../src/create-context.js","webpack:///../src/diff/children.js","webpack:///../src/diff/props.js","webpack:///../src/diff/index.js","webpack:///../src/clone-element.js","webpack:///../src/diff/catch-error.js","webpack:///../../src/network.ts","webpack:///./node_modules/@walletconnect/socket-transport/node_modules/ws/browser.js","webpack:///../../src/encoding.ts","webpack:///../../src/ethereum.ts","webpack:///../../src/payload.ts","webpack:///../../src/session.ts","webpack:///./node_modules/@walletconnect/utils/node_modules/bn.js/lib/bn.js","webpack:///./node_modules/aes-js/index.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/bech32/index.js","webpack:///./node_modules/bn.js/lib/bn.js","webpack:///./node_modules/buffer/index.js","webpack:///./node_modules/copy-to-clipboard/index.js","webpack:///./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack:///./node_modules/decode-uri-component/index.js","webpack:///./node_modules/detect-browser/es/index.js","webpack:///./node_modules/dijkstrajs/dijkstra.js","webpack:///../src.ts/ethers.ts","webpack:///./node_modules/eventemitter3/index.js","webpack:///./node_modules/events/events.js","webpack:///./node_modules/hash.js/lib/hash.js","webpack:///./node_modules/hash.js/lib/hash/common.js","webpack:///./node_modules/hash.js/lib/hash/hmac.js","webpack:///./node_modules/hash.js/lib/hash/ripemd.js","webpack:///./node_modules/hash.js/lib/hash/sha.js","webpack:///./node_modules/hash.js/lib/hash/sha/1.js","webpack:///./node_modules/hash.js/lib/hash/sha/224.js","webpack:///./node_modules/hash.js/lib/hash/sha/256.js","webpack:///./node_modules/hash.js/lib/hash/sha/384.js","webpack:///./node_modules/hash.js/lib/hash/sha/512.js","webpack:///./node_modules/hash.js/lib/hash/sha/common.js","webpack:///./node_modules/hash.js/lib/hash/utils.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/inherits/inherits_browser.js","webpack:///./node_modules/is-typedarray/index.js","webpack:///./node_modules/isarray/index.js","webpack:///./node_modules/js-sha3/src/sha3.js","webpack:///./node_modules/minimalistic-assert/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/qrcode/lib/browser.js","webpack:///./node_modules/qrcode/lib/can-promise.js","webpack:///./node_modules/qrcode/lib/core/alignment-pattern.js","webpack:///./node_modules/qrcode/lib/core/alphanumeric-data.js","webpack:///./node_modules/qrcode/lib/core/bit-buffer.js","webpack:///./node_modules/qrcode/lib/core/bit-matrix.js","webpack:///./node_modules/qrcode/lib/core/byte-data.js","webpack:///./node_modules/qrcode/lib/core/error-correction-code.js","webpack:///./node_modules/qrcode/lib/core/error-correction-level.js","webpack:///./node_modules/qrcode/lib/core/finder-pattern.js","webpack:///./node_modules/qrcode/lib/core/format-info.js","webpack:///./node_modules/qrcode/lib/core/galois-field.js","webpack:///./node_modules/qrcode/lib/core/kanji-data.js","webpack:///./node_modules/qrcode/lib/core/mask-pattern.js","webpack:///./node_modules/qrcode/lib/core/mode.js","webpack:///./node_modules/qrcode/lib/core/numeric-data.js","webpack:///./node_modules/qrcode/lib/core/polynomial.js","webpack:///./node_modules/qrcode/lib/core/qrcode.js","webpack:///./node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack:///./node_modules/qrcode/lib/core/regex.js","webpack:///./node_modules/qrcode/lib/core/segments.js","webpack:///./node_modules/qrcode/lib/core/utils.js","webpack:///./node_modules/qrcode/lib/core/version-check.js","webpack:///./node_modules/qrcode/lib/core/version.js","webpack:///./node_modules/qrcode/lib/renderer/canvas.js","webpack:///./node_modules/qrcode/lib/renderer/svg-tag.js","webpack:///./node_modules/qrcode/lib/renderer/utils.js","webpack:///./node_modules/qrcode/lib/utils/typedarray-buffer.js","webpack:///./node_modules/qrcode/node_modules/isarray/index.js","webpack:///./node_modules/query-string/index.js","webpack:///./node_modules/scrypt-js/scrypt.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/split-on-first/index.js","webpack:///./node_modules/strict-uri-encode/index.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/toggle-selection/index.js","webpack:///./node_modules/typedarray-to-buffer/index.js","webpack:///./node_modules/wagmi-private/connectors/walletConnect/dist/wagmi-private-connectors-walletConnect.esm.js","webpack:///./node_modules/wagmi-private/dist/base-3b1382b0.esm.js","webpack:///./node_modules/wagmi-private/dist/wagmi-private.esm.js","webpack:///./node_modules/wagmi/connectors/walletConnect/dist/wagmi-connectors-walletConnect.esm.js","webpack:///./node_modules/wagmi/dist/wagmi.esm.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/module.js","webpack:///./srcjs/metamaskConnect.jsx","webpack:///buffer (ignored)","webpack:///buffer (ignored)?1806","webpack:///external \"window.React\"","webpack:///external \"window.reactR\""],"names":["minAssert","minUtils","utils","assert","Base","inherits","require$$0","require$$1","curve","curves","KeyPair","HmacDRBG","Signature","signature","require$$2","require$$3","EC","_ec","open","uri","QRCode","type","console","const","WALLETCONNECT_STYLE_SHEET","_iteratorSymbol","Symbol","_asyncIteratorSymbol","result","body","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","className","src","React","onClick","props","onClose","id","href","name","rel","style","backgroundColor","color","target","CARET_SVG_URL","logo","background","backgroundSize","fontSize","window","GRID_MIN_COUNT","LINKS_PER_PAGE","android","isAndroid","input","setInput","filter","setFilter","page","setPage","links","link","errorMessage","grid","pages","Math","range","pageLinks","index","hasPaging","filterTimeout","e","clearTimeout","setTimeout","placeholder","value","onChange","handleInput","entry","shortName","formatIOSMobile","handleClickIOS","saveMobileLinkInfo","connect","pageNumber","selected","margin","fontWeight","show","formatQRCodeImage","data","dataString","notification","setNotification","svg","setSvg","copyToClipboard","success","copy","setInterval","dangerouslySetInnerHTML","__html","message","mobile","isMobile","whitelist","loading","setLoading","fetched","setFetched","displayQRCode","setDisplayQRCode","displayProps","text","qrcodeModalOptions","singleLinkHref","setSingleLinkHref","hasSingleLink","setHasSingleLink","setLinks","setErrorMessage","getLinksIfNeeded","initLinks","url","getWalletRegistryUrl","fetch","x","platform","_links","getMobileLinkRegistry","formatMobileRegistry","rightSelected","de","choose_preferred_wallet","connect_mobile_wallet","scan_qrcode_with_wallet","qrcode","desktop","copy_to_clipboard","copied_to_clipboard","connect_with","something_went_wrong","no_supported_wallets","no_wallets_found","en","es","fr","ko","pt","zh","fa","languages","doc","getDocumentOrThrow","prev","wrapper","modal","triggerCloseAnimation","cb","lang","getNavigatorOrThrow","Languages","injectStyleSheet","renderWrapper","ReactDOM","getText","getWrappedCallback","close","isNode","process","nodeLib","browserLib","assign","obj","i","shallowDiffers","a","b","PureComponent","isPureReactComponent","shouldComponentUpdate","state","this","Component","memo","c","comparer","shouldUpdate","nextProps","ref","updateRef","call","current","Memoed","createElement","prototype","isReactComponent","displayName","_forwarded","oldDiffHook","options","_diff","forwardRef","fn","Forwarded","clone","vnode","mapFn","children","toChildArray","reduce","acc","concat","Children","map","forEach","count","length","only","Error","toArray","oldCatchError","_catchError","detachedClone","_component","_children","Suspense","_pendingSuspensionCount","_suspenders","_detachOnNextRender","suspended","component","_parent","_suspended","lazy","loader","prom","error","Lazy","then","exports","SuspenseList","_next","_map","newVNode","oldVNode","_childDidSuspend","promise","suspendingComponent","push","resolve","_vnode","resolved","onResolved","onSuspensionComplete","_suspendedComponentWillUnmount","componentWillUnmount","setState","pop","forceUpdate","render","fallback","list","child","node","revealOrder","size","delegated","get","wrappedUnsuspend","unsuspend","Map","reverse","set","componentDidUpdate","componentDidMount","ContextProvider","getChildContext","context","Portal","_this","container","wrap","_container","_temp","parentNode","removeChild","_unmount","_wrap","_hasMounted","document","createTextNode","hydrate","appendChild","createPortal","CAMEL_PROPS","REACT_ELEMENT_TYPE","parent","callback","firstChild","preactRender","preactHydrate","oldEventHook","event","setSafeDescriptor","proto","key","Object","defineProperty","configurable","v","persist","stoppedPropagating","defaultPrevented","origStopPropagation","stopPropagation","origPreventDefault","preventDefault","isPropagationStopped","isDefaultPrevented","nativeEvent","classNameDescriptor","class","oldVNodeHook","$$typeof","enumerable","shouldSanitize","attrs","defaultValue","undefined","Array","isArray","multiple","indexOf","test","replace","toLowerCase","newProps","ondoubleclick","ondblclick","onbeforeinput","onchange","normalized","oninput","applyEventNormalization","_patchedLifecycles","version","createFactory","bind","isValidElement","element","cloneElement","preactCloneElement","apply","arguments","unmountComponentAtNode","findDOMNode","base","nodeType","unstable_batchedUpdates","arg","useState","useReducer","useEffect","useLayoutEffect","useRef","useImperativeHandle","useMemo","useCallback","useContext","useDebugValue","createContext","createRef","Fragment","rerenderQueue","rerenderCount","defer","prevDebounce","IS_HYDRATE","EMPTY_OBJ","EMPTY_ARR","IS_NON_DIMENSIONAL","removeNode","normalizedProps","defaultProps","createVNode","original","_depth","_dom","_nextDom","constructor","_original","getDomSibling","childIndex","sibling","updateParentDomPointers","enqueueRender","_dirty","debounceRendering","queue","sort","some","commitQueue","newDom","oldDom","parentDom","_parentDom","diff","_globalContext","ownerSVGElement","commitRoot","diffChildren","newParentVNode","oldParentVNode","globalContext","isSvg","excessDomChildren","isHydrating","j","sibDom","firstChildDom","refs","oldChildren","oldChildrenLength","childVNode","nextDom","outer","nextSibling","insertBefore","unmount","applyRef","flattened","diffProps","dom","oldProps","setProperty","setStyle","oldValue","s","useCapture","nameLower","cssText","slice","addEventListener","eventProxy","_listeners","removeEventListener","removeAttributeNS","setAttributeNS","removeAttribute","setAttribute","tmp","isNew","oldState","snapshot","clearProcessingException","provider","componentContext","newType","contextType","_id","_defaultValue","_processingException","_pendingError","doRender","sub","_renderCallbacks","_nextState","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","_force","componentWillUpdate","_render","getSnapshotBeforeUpdate","diffElementNodes","diffed","root","_commit","oldHtml","newHtml","localName","createElementNS","is","childNodes","attributes","innerHTML","checked","parentVNode","skipRemove","r","replaceNode","_root","ctx","Consumer","Provider","subs","_props","old","splice","_contextRef","hasCaught","getDerivedStateFromError","componentDidCatch","update","Promise","currentIndex","currentComponent","prevRaf","currentHook","afterPaintEffects","oldBeforeRender","oldAfterDiff","oldCommit","oldBeforeUnmount","getHookState","_hook","hooks","__hooks","_list","_pendingEffects","initialState","invokeOrReturn","reducer","init","hookState","_value","nextValue","action","args","_skipEffects","argsChanged","_args","initialValue","createHandle","factory","_factory","_context","formatter","useErrorBoundary","errState","err","flushAfterPaintEffects","invokeCleanup","invokeEffect","hook","_cleanup","oldArgs","newArgs","f","requestAnimationFrame","raf","done","timeout","cancelAnimationFrame","module","val","msg","ctor","superCtor","super_","TempCtor","BN","number","endian","isBN","negative","words","red","_init","wordSize","Buffer","require","num","max","left","right","cmp","min","_initNumber","_initArray","toString","start","_parseHex","_parseBase","strip","ceil","w","off","parseHex","str","end","len","charCodeAt","parseBase","mul","limbLen","limbPow","total","mod","word","imuln","_iaddn","pow","dest","_expand","_normSign","inspect","zeros","groupSizes","groupBases","padding","out","carry","groupSize","groupBase","isZero","modn","idivn","toNumber","ret","toJSON","toBuffer","toArrayLike","ArrayType","byteLength","reqLength","littleEndian","res","q","andln","iushrn","clz32","_countBits","t","_zeroBits","bitLength","hi","toBitArray","bit","wbit","zeroBits","toTwos","width","abs","inotn","iaddn","fromTwos","testn","notn","ineg","isNeg","neg","iuor","ior","or","uor","iuand","iand","and","uand","iuxor","ixor","xor","uxor","bytesNeeded","bitsLeft","setn","iadd","isub","add","smallMulTo","self","lo","k","ncarry","rword","maxJ","comb10MulTo","o","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","imul","w0","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","fftm","FFTM","mulp","mulTo","y","makeRBT","N","l","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","p","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","n","m","odd","conjugate","normalize13b","ws","round","convert13b","stub","ph","_","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","muln","sqr","isqr","iushln","bits","carryMask","newCarry","ishln","hint","extended","h","mask","maskedWords","ishrn","shln","ushln","shrn","ushrn","imaskn","maskn","isubn","addn","subn","iabs","_ishlnsubmul","shift","_wordDiv","mode","bhi","bhiBits","qj","div","divmod","positive","divn","umod","divRound","dm","half","r2","egcd","A","B","C","D","g","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gt","gten","gte","ltn","lt","lten","lte","eqn","eq","Red","toRed","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","shl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","_tmp","ireduce","rlen","split","imulK","K256","output","outLen","next","P224","P192","P25519","_prime","prime","imod","mod3","one","nOne","lpow","z","inv","windowSize","wnd","currentLen","mont","Mont","rinv","minv","u","checkInt","parseInt","checkInts","arrayish","coerceArray","buffer","ArrayBuffer","isView","Uint8Array","createArray","copyArray","sourceArray","targetArray","targetStart","sourceStart","sourceEnd","convertUtf8","toBytes","encodeURI","substr","fromBytes","bytes","String","fromCharCode","join","convertHex","Hex","numberOfRounds","rcon","S","Si","T1","T2","T3","T4","T5","T6","T7","T8","U1","U2","U3","U4","convertToInt32","AES","_prepare","rounds","_Ke","_Kd","roundKeyCount","KC","tk","rconpointer","tt","encrypt","plaintext","decrypt","ciphertext","ModeOfOperationECB","description","_aes","block","ModeOfOperationCBC","iv","_lastCipherblock","ModeOfOperationCFB","segmentSize","_shiftRegister","encrypted","xorSegment","ModeOfOperationOFB","_lastPrecipher","_lastPrecipherIndex","Counter","_counter","setValue","setBytes","increment","ModeOfOperationCTR","counter","_remainingCounter","_remainingCounterIndex","pkcs7pad","padder","pkcs7strip","aesjs","ModeOfOperation","ecb","cbc","cfb","ofb","ctr","hex","utf8","pkcs7","pad","_arrayTest","toByteArray","fromByteArray","lookup","revLookup","Arr","code","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","arr","curByte","tripletToBase64","encodeChunk","uint8","extraBytes","parts","maxChunkLength","len2","ALPHABET","ALPHABET_MAP","charAt","TypeError","polymodStep","pre","prefixChk","prefix","chk","encode","LIMIT","__decode","lowered","uppered","toUpperCase","lastIndexOf","wordChars","decodeUnsafe","decode","convert","inBits","outBits","maxV","toWordsUnsafe","toWords","fromWordsUnsafe","fromWords","parseHex4Bits","string","parseHexByte","lowerBound","parseLength","_strip","base64","ieee754","SlowBuffer","INSPECT_MAX_BYTES","TYPED_ARRAY_SUPPORT","global","typedArraySupport","kMaxLength","__proto__","foo","subarray","createBuffer","that","RangeError","encodingOrOffset","allocUnsafe","from","poolSize","_augment","fromArrayBuffer","fromString","fromObject","species","assertSize","alloc","fill","encoding","allocUnsafeSlow","isEncoding","actual","write","fromArrayLike","array","byteOffset","isBuffer","isnan","_isBuffer","compare","pos","buf","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","swap16","swap32","swap64","equals","match","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","indexSize","arrLength","valLength","read","readUInt16BE","foundIndex","found","includes","hexWrite","offset","Number","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","isFinite","_arr","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","toHex","newBuf","sliceLen","checkOffset","ext","readUIntLE","noAssert","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","floor","objectWriteUInt16","writeUInt16LE","writeUInt16BE","objectWriteUInt32","writeUInt32LE","writeUInt32BE","writeIntLE","limit","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","checkIEEE754","writeFloat","writeFloatLE","writeFloatBE","writeDouble","writeDoubleLE","writeDoubleBE","INVALID_BASE64_RE","base64clean","stringtrim","trim","units","Infinity","leadSurrogate","byteArray","dst","deselectCurrent","clipboardToIE11Formatting","defaultMessage","format","copyKey","navigator","userAgent","debug","reselectPrevious","selection","mark","createRange","getSelection","textContent","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","clipboardData","warn","clearData","setData","onCopy","selectNodeContents","addRange","successful","execCommand","prompt","removeRange","removeAllRanges","__self__","F","DOMException","irrelevant","support","searchParams","iterable","blob","Blob","formData","arrayBuffer","isDataView","DataView","isPrototypeOf","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","items","iterator","Headers","headers","append","header","getOwnPropertyNames","has","hasOwnProperty","thisArg","keys","values","entries","consumed","bodyUsed","reject","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","readBlobAsText","readAsText","readArrayBufferAsText","view","chars","bufferClone","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","json","JSON","parse","methods","normalizeMethod","method","upcased","Request","credentials","signal","referrer","form","decodeURIComponent","parseHeaders","rawHeaders","preProcessedHeaders","line","Response","bodyInit","status","ok","statusText","response","redirectStatuses","redirect","location","stack","create","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","getAllResponseHeaders","responseURL","responseText","ontimeout","onabort","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","send","polyfill","ponyfill","token","singleMatcher","RegExp","multiMatcher","decodeComponents","components","tokens","customDecodeURIComponent","replaceMap","exec","encodedURI","__spreadArrays","il","jl","BrowserInfo","os","NodeInfo","SearchBotDeviceInfo","bot","BotInfo","ReactNativeInfo","SEARCHBOX_UA_REGEX","SEARCHBOT_OS_REGEX","REQUIRED_VERSION_PARTS","userAgentRules","operatingSystemRules","detect","parseUserAgent","product","getNodeVersion","matchUserAgent","ua","matched","_a","browser","regex","uaMatch","browserName","matchedRule","versionParts","createVersionParts","detectOS","searchBotMatch","ii","dijkstra","single_source_shortest_paths","graph","d","predecessors","costs","PriorityQueue","make","closest","cost_of_s_to_u","adjacent_nodes","cost_of_e","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","first_visit","empty","cost","extract_shortest_path_from_predecessor_list","nodes","predecessor","find_path","opts","T","sorter","default_sorter","item","Events","EE","once","addListener","emitter","listener","evt","_events","_eventsCount","clearEvent","EventEmitter","eventNames","names","events","getOwnPropertySymbols","listeners","handlers","ee","listenerCount","emit","removeListener","on","removeAllListeners","prefixed","R","Reflect","ReflectApply","receiver","Function","ReflectOwnKeys","ownKeys","ProcessEmitWarning","warning","NumberIsNaN","_maxListeners","defaultMaxListeners","checkListener","getPrototypeOf","setMaxListeners","_getMaxListeners","getMaxListeners","doError","er","handler","arrayClone","_addListener","prepend","existing","newListener","unshift","warned","prependListener","onceWrapper","fired","wrapFn","_onceWrap","wrapped","prependOnceListener","originalListener","spliceOne","unwrap","evlistener","unwrapListeners","rawListeners","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","hash","common","sha","ripemd","hmac","sha1","sha256","sha224","sha384","sha512","ripemd160","BlockHash","pending","pendingTotal","blockSize","outSize","hmacStrength","padLength","_delta8","_delta32","enc","join32","_update","digest","_pad","_digest","Hmac","Hash","inner","rotl32","sum32","sum32_3","sum32_4","RIPEMD160","E","Ah","Bh","Ch","Dh","Eh","K","rh","Kh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","W","SHA256","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","SHA512","SHA384","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","_prepareBlock","c0_hi","g1_512_hi","c0_lo","g1_512_lo","c1_hi","c1_lo","c2_hi","g0_512_hi","c2_lo","g0_512_lo","c3_hi","c3_lo","ah","al","bh","bl","ch","cl","dh","dl","eh","el","fh","fl","gh","gl","hh","hl","s1_512_hi","s1_512_lo","ch64_hi","ch64_lo","c4_hi","c4_lo","T1_hi","T1_lo","s0_512_hi","s0_512_lo","maj64_hi","maj64_lo","T2_hi","T2_lo","xh","xl","yh","yl","zl","rotr32","p32","isSurrogatePair","zero2","htonl","zero8","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","NaN","rt","log","LN2","writable","isTypedArray","strict","isStrictTypedArray","loose","isLooseTypedArray","Int8Array","Int16Array","Int32Array","Uint8ClampedArray","Uint16Array","Uint32Array","Float32Array","Float64Array","INPUT_ERROR","FINALIZE_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","NODE_JS","JS_SHA3_NO_NODE_JS","versions","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","define","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","SHAKE_PADDING","CSHAKE_PADDING","KECCAK_PADDING","PADDING","SHIFT","RC","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","Keccak","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","createShakeMethod","createCshakeMethod","bytepad","createKmacMethod","Kmac","algorithms","methodNames","algorithm","methodName","newMethodName","blocks","reset","finalized","blockCount","byteCount","outputBlocks","notString","lastByteIndex","encodeString","strs","paddingBytes","finalize","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","b10","b11","b12","b13","b14","b15","b16","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b48","b49","equal","assertEqual","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","run","nextTick","Item","title","env","argv","noop","binding","cwd","chdir","umask","canPromise","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","argsNum","isLastArgCb","getContext","toCanvas","toDataURL","renderToDataURL","getSymbolSize","getRowColCoords","posCount","intervals","positions","getPositions","coords","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","ALPHANUMERIC","getBitsLength","getLength","bitBuffer","put","BitBuffer","bufIndex","putBit","getLengthInBits","BufferUtil","BitMatrix","reservedBit","row","col","reserved","isReserved","ByteData","BYTE","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","lcStr","isValid","level","FINDER_PATTERN_SIZE","Utils","G15","G15_MASK","G15_BCH","getBCHDigit","getEncodedBits","EXP_TABLE","LOG_TABLE","initTables","exp","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","N1","N2","N3","N4","getPenaltyN1","points","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","last","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","getMaskAt","maskPattern","applyMask","pattern","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","group","remainingNum","GF","p1","p2","coeff","divident","divisor","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFinderPattern","matrix","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","setupFormatInfo","setupData","inc","bitIndex","byteIndex","dark","createData","segments","totalCodewords","getSymbolTotalCodewords","ecTotalCodewords","dataTotalCodewordsBits","remainingByte","createCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup2","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","modules","toSJISFunc","setToSJISFunction","Polynomial","genPoly","initialize","paddedData","remainder","buff","numeric","alphanumeric","kanji","byte","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","getStringByteLength","unescape","encodeURIComponent","getSegments","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","isKanjiModeEnabled","segs","s1","s2","getSegmentBitsLength","mergeSegments","curr","prevSeg","buildNodes","seg","buildGraph","table","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildSingleSegment","modesHint","bestMode","path","optimizedSegs","toSJISFunction","CODEWORDS_COUNT","digit","G18","G18_BCH","getBestVersionForDataLength","currentVersion","getCapacity","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getBestVersionForMixedData","usableBits","ecl","clearCanvas","clearRect","height","getCanvasElement","qrData","canvasEl","getOptions","getImageWidth","image","createImageData","qrToImageData","putImageData","rendererOpts","quality","getColorAttrib","attrib","alpha","toFixed","svgCmd","cmd","qrToPath","moveBy","newRow","lineLength","qrcodesize","bg","light","viewBox","svgTag","hex2rgba","hexCode","hexValue","scale","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","iSrc","jSrc","K_MAX_LENGTH","strictUriEncode","decodeComponent","splitOnFirst","isNullOrUndefined","encoderForArrayFormat","arrayFormat","skipNull","skipEmptyString","arrayFormatSeparator","parserForArrayFormat","accumulator","newValue","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","getHash","extract","queryStart","parseValue","parseNumbers","parseBooleans","param","Boolean","stringify","object","shouldFilter","objectCopy","parseUrl","query","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","MAX_VALUE","h0","h1","h2","h3","h4","h5","h6","h7","t1","t2","bytesLeft","bitLenHi","bitLenLo","numZeros","PBKDF2_HMAC_SHA256_OneIter","password","salt","dkLen","innerLen","outerKey","dk","incrementCounter","blockmix_salsa8","BY","Yi","_X","arraycopy","blockxor","salsa20_8","srcPos","destPos","checkBufferish","ensureInteger","_scrypt","XY","V","totalOps","currentOp","lastPercent10","stop","i0","i1","Bi","setImmediate","incrementalSMix","steps","percent10","derivedKey","lib","scrypt","progressCallback","lastProgress","progress","syncScrypt","nextHandle","tasksByHandle","currentlyRunningATask","registerImmediate","task","clearImmediate","handle","runIfPresent","installNextTickImplementation","canUsePostMessage","postMessage","importScripts","postMessageIsAsynchronous","oldOnMessage","onmessage","installPostMessageImplementation","messagePrefix","random","onGlobalMessage","source","attachEvent","installMessageChannelImplementation","channel","MessageChannel","port1","port2","installReadyStateChangeImplementation","html","documentElement","script","installSetTimeoutImplementation","attachTo","separator","separatorIndex","scope","Timeout","clearInterval","clearFn","_clearFn","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","onTimeout","_onTimeout","rangeCount","activeElement","ranges","getRangeAt","tagName","blur","focus","typedarrayToBuffer","_classPrivateMethodInitSpec","privateSet","_checkPrivateRedeclaration","_classPrivateMethodGet","switchChainAllowedRegex","_provider","WeakMap","_switchChain","WeakSet","WalletConnectConnector","config","_defineProperty","_classPrivateFieldInitSpec","accounts","account","getAddress","chainId","normalizeChainId","unsupported","isChainUnsupported","chain","_asyncToGenerator","getProvider","onAccountsChanged","onChainChanged","onDisconnect","enable","getChainId","walletName","_provider$connector$p","_provider$connector","connector","_provider$connector$p2","peerMeta","switchChain","_switchChain2","Web3Provider","UserRejectedRequestError","_this2","disconnect","localStorage","removeItem","_this3","_this4","_classPrivateFieldGet","_classPrivateFieldSet","WalletConnectProvider","_this5","getAccount","getSigner","_this6","Connector","_x","_switchChain3","params","chains","allChains","find","SwitchChainError","asyncGeneratorStep","gen","_throw","info","privateCollection","privateMap","_classApplyDescriptorGet","descriptor","_classExtractFieldDescriptor","_classApplyDescriptorSet","mainnet","nativeCurrency","symbol","decimals","rpcUrls","blockExplorers","ropsten","testnet","rinkeby","goerli","kovan","optimisticEthereum","optimisticKovan","polygonMainnet","polygonTestnetMumbai","arbitrumOne","arbitrumRinkeby","avalanche","avalancheFuji","localhost","hardhat","defaultChains","defaultL2Chains","developmentChains","substring","AddChainError","ChainNotConfiguredError","ConnectorAlreadyConnectedError","ConnectorNotFoundError","_ref","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","_objectSpread2","getOwnPropertyDescriptors","defineProperties","erc1155ABI","constant","inputs","internalType","outputs","payable","stateMutability","erc20ABI","anonymous","indexed","erc721ABI","getInjectedName","ethereum","isMetaMask","isCoinbaseWallet","isFrame","isTally","shimKey","InjectedConnector","_this$options","shimDisconnect","_this$options2","setItem","_this2$options","_this6$options","getItem","_this7","chainName","blockExplorerUrls","_chain$blockExplorers","_this8","address","useProvider","useWebSocketProvider","webSocketProvider","useCacheBuster","cacheBuster","useCancel","cancelCallback","_cancelCallback$curre","cancel","_cancelCallback$curre2","useLocalStorage","defaultState","setLocalStorage","initialState$f","useEnsAvatar","addressOrName","skip","cancelQuery","getEnsAvatar","didCancel","config_","getAvatar","avatar","initialState$e","useEnsLookup","lookupAddress","ens","initialState$d","useEnsResolveName","resolveName","initialState$c","useEnsResolver","getEnsResolver","getResolver","useAccount","_globalState$data","fetchEns","globalState","ensError","ensLoading","avatarError","avatarLoading","_x$connector","initialState$b","useBlockNumber","watch","getBlockNumber","blockNumber","provider_","initialState$a","useFeeData","formatUnits","getFeeData","feeData","formatted","gasPrice","maxFeePerGas","maxPriorityFeePerGas","initialState$9","useBalance","getBalance","formatUnits_","_config_$formatUnits","contract","ethers","Contract","balanceOf","balance","_connector$chains","network","_chain$nativeCurrency","_chain$nativeCurrency2","_chain$nativeCurrency3","_chain$nativeCurrency4","initialState$8","useConnect","setGlobalState","setLastUsedConnector","activeConnector","connected","connectors","connecting","initialState$7","useNetwork","_data$chain","_data$chain2","activeChains","activeChain","switchNetwork","initialState$6","useSigner","signer","initialState$5","useSignMessage","signMessage","getContract","contractInterface","signerOrProvider","useContract","_ref2","useContractEvent","contractConfig","eventName","listenerRef","_len","_key","contract_","initialState$4","useContractRead","functionName","overrides","initialState$3","useContractWrite","initialState$2","useToken","getToken","totalSupply","watchToken","watchAsset","_x2","initialState$1","useTransaction","sendTransaction","transaction","useWaitForTransaction","confirmations","wait_","wait","waitForTransaction","receipt","Context","_state$data2","_state$data2$chain","_state$data4","_state$data4$chain","_state$data6","_state$data6$chain","autoConnect","connectors_","connectorStorageKey","getDefaultProvider","webSocketProvider_","lastUsedConnector","_state$data","_state$data$chain","_state$data3","_state$data3$chain","_state$data5","_state$data5$chain","sorted","_loop","ready","isAuthorized","_ret","onError","webpackPolyfill","deprecate","paths","EvmWalletConnectors","Connectors","setWalletAddress","accountData","reactShinyInput"],"mappings":"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","file":"metamaskConnect.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./srcjs/metamaskConnect.jsx\");\n","export const version = \"ethers/5.5.4\";\n//# sourceMappingURL=_version.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 logger.checkNew(new.target, AbiCoder);\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","\"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","\"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","\"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","\"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\";\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\";\n// To modify this file, you must update ./misc/admin/lib/cmds/update-exports.js\nimport * as ethers from \"./ethers\";\ntry {\n const anyGlobal = window;\n if (anyGlobal._ethers == null) {\n anyGlobal._ethers = ethers;\n }\n}\ncatch (error) { }\nexport { ethers };\nexport { Signer, Wallet, VoidSigner, getDefaultProvider, providers, BaseContract, Contract, ContractFactory, BigNumber, FixedNumber, constants, errors, logger, utils, wordlists, \n////////////////////////\n// Compile-Time Constants\nversion, Wordlist } from \"./ethers\";\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\nimport { defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, ParamType } from \"./fragments\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport { checkResultErrors };\nexport class LogDescription extends Description {\n}\nexport class TransactionDescription extends Description {\n}\nexport class ErrorDescription extends Description {\n}\nexport class Indexed extends Description {\n static isIndexed(value) {\n return !!(value && value._isIndexed);\n }\n}\nconst BuiltinErrors = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [\"string\"], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [\"uint256\"] }\n};\nfunction wrapAccessError(property, error) {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${property}`);\n wrap.error = error;\n return wrap;\n}\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n constructor(fragments) {\n logger.checkNew(new.target, Interface);\n let abi = [];\n if (typeof (fragments) === \"string\") {\n abi = JSON.parse(fragments);\n }\n else {\n abi = fragments;\n }\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n defineReadOnly(this, \"_abiCoder\", getStatic(new.target, \"getAbiCoder\")());\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"errors\", {});\n defineReadOnly(this, \"events\", {});\n defineReadOnly(this, \"structs\", {});\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.events;\n break;\n case \"error\":\n bucket = this.errors;\n break;\n default:\n return;\n }\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n bucket[signature] = fragment;\n });\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n defineReadOnly(this, \"_isInterface\", true);\n }\n format(format) {\n if (!format) {\n format = FormatTypes.full;\n }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n const abi = this.fragments.map((fragment) => fragment.format(format));\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n return abi;\n }\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder() {\n return defaultAbiCoder;\n }\n static getAddress(address) {\n return getAddress(address);\n }\n static getSighash(fragment) {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n static getEventTopic(eventFragment) {\n return id(eventFragment.format());\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n return this.functions[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic) {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n return this.events[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n return this.errors[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment) {\n if (typeof (fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n }\n catch (error) {\n try {\n fragment = this.getError(fragment);\n }\n catch (_) {\n throw error;\n }\n }\n }\n return getStatic(this.constructor, \"getSighash\")(fragment);\n }\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n return getStatic(this.constructor, \"getEventTopic\")(eventFragment);\n }\n _decodeParams(params, data) {\n return this._abiCoder.decode(params, data);\n }\n _encodeParams(params, values) {\n return this._abiCoder.encode(params, values);\n }\n encodeDeploy(values) {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n decodeErrorResult(fragment, data) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n const bytes = arrayify(data);\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${fragment.name}.`, \"data\", hexlify(bytes));\n }\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n encodeErrorResult(fragment, values) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [])\n ]));\n }\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n const bytes = arrayify(data);\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${functionFragment.name}.`, \"data\", hexlify(bytes));\n }\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [])\n ]));\n }\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n let bytes = arrayify(data);\n let reason = null;\n let errorArgs = null;\n let errorName = null;\n let errorSignature = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n }\n catch (error) { }\n break;\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) {\n reason = errorArgs[0];\n }\n }\n else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n }\n catch (error) {\n console.log(error);\n }\n }\n break;\n }\n }\n return logger.throwError(\"call revert exception\", Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n errorArgs, errorName, errorSignature, reason\n });\n }\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));\n }\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n });\n }\n let topics = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n const encodeTopic = (param, value) => {\n if (param.type === \"string\") {\n return id(value);\n }\n else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n // Check addresses are valid\n if (param.type === \"address\") {\n this._abiCoder.encode([\"address\"], [value]);\n }\n return hexZeroPad(hexlify(value), 32);\n };\n values.forEach((value, index) => {\n let param = eventFragment.inputs[index];\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n if (value == null) {\n topics.push(null);\n }\n else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n }\n else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n }\n else {\n topics.push(encodeTopic(param, value));\n }\n });\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n return topics;\n }\n encodeEventLog(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n const topics = [];\n const dataTypes = [];\n const dataValues = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value));\n }\n else if (param.type === \"bytes\") {\n topics.push(keccak256(value));\n }\n else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n }\n else {\n topics.push(this._abiCoder.encode([param.type], [value]));\n }\n }\n else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n return {\n data: this._abiCoder.encode(dataTypes, dataValues),\n topics: topics\n };\n }\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment, data, topics) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n let indexed = [];\n let nonIndexed = [];\n let dynamic = [];\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n }\n else {\n indexed.push(param);\n dynamic.push(false);\n }\n }\n else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)) : null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n let result = [];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n }\n else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n }\n else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n }\n else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${JSON.stringify(param.name)}`, value); }\n });\n }\n else {\n result[param.name] = value;\n }\n }\n });\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${i}`, value); }\n });\n }\n }\n return Object.freeze(result);\n }\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx) {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());\n if (!fragment) {\n return null;\n }\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n // @TODO\n //parseCallResult(data: BytesLike): ??\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log) {\n let fragment = this.getEvent(log.topics[0]);\n if (!fragment || fragment.anonymous) {\n return null;\n }\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n parseError(data) {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase());\n if (!fragment) {\n return null;\n }\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n static isInterface(value) {\n return !!(value && value._isInterface);\n }\n}\n//# sourceMappingURL=interface.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function decode(textData) {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\nexport function encode(data) {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n//# sourceMappingURL=base64.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 logger.checkNew(new.target, BigNumber);\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(\"cannot modulo negative values\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"cannot raise to negative values\", \"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(\"cannot 'and' negative values\", \"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(\"cannot 'or' negative values\", \"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(\"cannot 'xor' negative values\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"cannot mask negative values\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"cannot shift negative values\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"cannot shift negative values\", \"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\";\nimport { arrayify, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BigNumber, isBigNumberish } from \"./bignumber\";\nconst _constructorGuard = {};\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\nfunction throwFault(message, fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value !== undefined) {\n params.value = value;\n }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) {\n zeros += zeros;\n}\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals) {\n if (typeof (decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n }\n catch (e) { }\n }\n if (typeof (decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\nexport function formatFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n const negative = value.lt(Zero);\n if (negative) {\n value = value.mul(NegativeOne);\n }\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) {\n fraction = \"0\" + fraction;\n }\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n }\n else {\n value = whole + \".\" + fraction;\n }\n if (negative) {\n value = \"-\" + value;\n }\n return value;\n}\nexport function parseFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n if (typeof (value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) {\n value = value.substring(1);\n }\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n let whole = comps[0], fraction = comps[1];\n if (!whole) {\n whole = \"0\";\n }\n if (!fraction) {\n fraction = \"0\";\n }\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") {\n fraction = \"0\";\n }\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) {\n fraction += \"0\";\n }\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n if (negative) {\n wei = wei.mul(NegativeOne);\n }\n return wei;\n}\nexport class FixedFormat {\n constructor(constructorGuard, signed, width, decimals) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n this.name = (signed ? \"\" : \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n this._multiplier = getMultiplier(decimals);\n Object.freeze(this);\n }\n static from(value) {\n if (value instanceof FixedFormat) {\n return value;\n }\n if (typeof (value) === \"number\") {\n value = `fixed128x${value}`;\n }\n let signed = true;\n let width = 128;\n let decimals = 18;\n if (typeof (value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n }\n else if (value === \"ufixed\") {\n signed = false;\n }\n else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) {\n logger.throwArgumentError(\"invalid fixed format\", \"format\", value);\n }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n }\n else if (value) {\n const check = (key, type, defaultValue) => {\n if (value[key] == null) {\n return defaultValue;\n }\n if (typeof (value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type + \")\", \"format.\" + key, value[key]);\n }\n return value[key];\n };\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\nexport class FixedNumber {\n constructor(constructorGuard, hex, value, format) {\n logger.checkNew(new.target, FixedNumber);\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.format = format;\n this._hex = hex;\n this._value = value;\n this._isFixedNumber = true;\n Object.freeze(this);\n }\n _checkFormat(other) {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n addUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n subUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n mulUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n divUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n floor() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n ceiling() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n // @TODO: Support other rounding algorithms\n round(decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n if (comps[1].length <= decimals) {\n return this;\n }\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n isZero() {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n isNegative() {\n return (this._value[0] === \"-\");\n }\n toString() { return this._value; }\n toHexString(width) {\n if (width == null) {\n return this._hex;\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid byte width\", \"width\", width);\n }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n toUnsafeFloat() { return parseFloat(this.toString()); }\n toFormat(format) {\n return FixedNumber.fromString(this._value, format);\n }\n static fromValue(value, decimals, format) {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n if (decimals == null) {\n decimals = 0;\n }\n if (format == null) {\n format = \"fixed\";\n }\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n static fromString(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n const numeric = parseFixed(value, fixedFormat.decimals);\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n let hex = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n }\n else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static fromBytes(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) {\n numeric = numeric.fromTwos(fixedFormat.width);\n }\n const hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static from(value, format) {\n if (typeof (value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n try {\n return FixedNumber.fromValue(value, 0, format);\n }\n catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n static isFixedNumber(value) {\n return !!(value && value._isFixedNumber);\n }\n}\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n//# sourceMappingURL=fixednumber.js.map","export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n//# sourceMappingURL=addresses.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","export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n//# sourceMappingURL=hashes.js.map","// NFKC (composed) // (decomposed)\nexport const EtherSymbol = \"\\u039e\"; // \"\\uD835\\uDF63\";\n//# sourceMappingURL=strings.js.map","import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport function id(text) {\n return keccak256(toUtf8Bytes(text));\n}\n//# sourceMappingURL=id.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","import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { nameprep, toUtf8Bytes } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\nconst Partition = new RegExp(\"^((.*)\\\\.)?([^.]+)$\");\nexport function isValidName(name) {\n try {\n const comps = name.split(\".\");\n for (let i = 0; i < comps.length; i++) {\n if (nameprep(comps[i]).length === 0) {\n throw new Error(\"empty\");\n }\n }\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function namehash(name) {\n /* istanbul ignore if */\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n let current = name;\n let result = Zeros;\n while (current.length) {\n const partition = current.match(Partition);\n if (partition == null || partition[2] === \"\") {\n logger.throwArgumentError(\"invalid ENS address; missing component\", \"name\", name);\n }\n const label = toUtf8Bytes(nameprep(partition[3]));\n result = keccak256(concat([result, keccak256(label)]));\n current = partition[2] || \"\";\n }\n return hexlify(result);\n}\n//# sourceMappingURL=namehash.js.map","var __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 { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { id } from \"./id\";\nconst padding = new Uint8Array(32);\npadding.fill(0);\nconst NegativeOne = BigNumber.from(-1);\nconst Zero = BigNumber.from(0);\nconst One = BigNumber.from(1);\nconst MaxUint256 = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nfunction hexPadRight(value) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32;\n if (padOffset) {\n return hexConcat([bytes, padding.slice(padOffset)]);\n }\n return hexlify(bytes);\n}\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\nconst domainFieldTypes = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\nconst domainFieldNames = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\nfunction checkString(key) {\n return function (value) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);\n }\n return value;\n };\n}\nconst domainChecks = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function (value) {\n try {\n return BigNumber.from(value).toString();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function (value) {\n try {\n return getAddress(value).toLowerCase();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function (value) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) {\n throw new Error(\"bad length\");\n }\n return hexlify(bytes);\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n};\nfunction getBaseEncoder(type) {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n const boundsUpper = MaxUint256.mask(signed ? (width - 1) : width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne) : Zero;\n return function (value) {\n const v = BigNumber.from(value);\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${type}`, \"value\", value);\n }\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n return function (value) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${type}`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n switch (type) {\n case \"address\": return function (value) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function (value) {\n return ((!value) ? hexFalse : hexTrue);\n };\n case \"bytes\": return function (value) {\n return keccak256(value);\n };\n case \"string\": return function (value) {\n return id(value);\n };\n }\n return null;\n}\nfunction encodeType(name, fields) {\n return `${name}(${fields.map(({ name, type }) => (type + \" \" + name)).join(\",\")})`;\n}\nexport class TypedDataEncoder {\n constructor(types) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n defineReadOnly(this, \"_encoderCache\", {});\n defineReadOnly(this, \"_types\", {});\n // Link struct types to their direct child structs\n const links = {};\n // Link structs to structs which contain them as a child\n const parents = {};\n // Link all subtypes within a given struct\n const subtypes = {};\n Object.keys(types).forEach((type) => {\n links[type] = {};\n parents[type] = [];\n subtypes[type] = {};\n });\n for (const name in types) {\n const uniqueNames = {};\n types[name].forEach((field) => {\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n return;\n }\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n }\n else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(\", \")}`, \"types\", types);\n }\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n // Check for circular type references\n function checkCircular(type, found) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, \"types\", types);\n }\n found[type] = true;\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) {\n return;\n }\n // Recursively check children\n checkCircular(child, found);\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n delete found[type];\n }\n checkCircular(this.primaryType, {});\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n getEncoder(type) {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n _getEncoder(type) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n return keccak256(hexConcat(result));\n };\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) {\n return keccak256(result);\n }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n };\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n encodeType(name) {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, \"name\", name);\n }\n return result;\n }\n encodeData(type, value) {\n return this.getEncoder(type)(value);\n }\n hashStruct(name, value) {\n return keccak256(this.encodeData(name, value));\n }\n encode(value) {\n return this.encodeData(this.primaryType, value);\n }\n hash(value) {\n return this.hashStruct(this.primaryType, value);\n }\n _visit(type, value, callback) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return callback(type, value);\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v) => this._visit(subtype, v, callback));\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, {});\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n visit(value, callback) {\n return this._visit(this.primaryType, value, callback);\n }\n static from(types) {\n return new TypedDataEncoder(types);\n }\n static getPrimaryType(types) {\n return TypedDataEncoder.from(types).primaryType;\n }\n static hashStruct(name, types, value) {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n static hashDomain(domain) {\n const domainFields = [];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n static encode(domain, types, value) {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n static hash(domain, types, value) {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n // Replaces all address types with ENS names with their looked up address\n static resolveNames(domain, types, value, resolveName) {\n return __awaiter(this, void 0, void 0, function* () {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n // Look up all ENS names\n const ensCache = {};\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n // Get a list of all the addresses\n encoder.visit(value, (type, value) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = yield resolveName(name);\n }\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n // Replace all ENS names with their address\n value = encoder.visit(value, (type, value) => {\n if (type === \"address\" && ensCache[value]) {\n return ensCache[value];\n }\n return value;\n });\n return { domain, value };\n });\n }\n static getPayload(domain, types, value) {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n // Derive the EIP712Domain Struct reference type\n const domainValues = {};\n const domainTypes = [];\n domainFieldNames.forEach((name) => {\n const value = domain[name];\n if (value == null) {\n return;\n }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n const encoder = TypedDataEncoder.from(types);\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n }\n else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n // Validate the data structures and types\n encoder.encode(value);\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type, value) => {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n//# sourceMappingURL=typed-data.js.map","\"use strict\";\nimport aes from \"aes-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { Description } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { getPassword, looseArrayify, searchPath } from \"./utils\";\nexport class CrowdsaleAccount extends Description {\n isCrowdsaleAccount(value) {\n return !!(value && value._isCrowdsaleAccount);\n }\n}\n// See: https://github.com/ethereum/pyethsaletool\nexport function decrypt(json, password) {\n const data = JSON.parse(json);\n password = getPassword(password);\n // Ethereum Address\n const ethaddr = getAddress(searchPath(data, \"ethaddr\"));\n // Encrypted Seed\n const encseed = looseArrayify(searchPath(data, \"encseed\"));\n if (!encseed || (encseed.length % 16) !== 0) {\n logger.throwArgumentError(\"invalid encseed\", \"json\", json);\n }\n const key = arrayify(pbkdf2(password, password, 2000, 32, \"sha256\")).slice(0, 16);\n const iv = encseed.slice(0, 16);\n const encryptedSeed = encseed.slice(16);\n // Decrypt the seed\n const aesCbc = new aes.ModeOfOperation.cbc(key, iv);\n const seed = aes.padding.pkcs7.strip(arrayify(aesCbc.decrypt(encryptedSeed)));\n // This wallet format is weird... Convert the binary encoded hex to a string.\n let seedHex = \"\";\n for (let i = 0; i < seed.length; i++) {\n seedHex += String.fromCharCode(seed[i]);\n }\n const seedHexBytes = toUtf8Bytes(seedHex);\n const privateKey = keccak256(seedHexBytes);\n return new CrowdsaleAccount({\n _isCrowdsaleAccount: true,\n address: ethaddr,\n privateKey: privateKey\n });\n}\n//# sourceMappingURL=crowdsale.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nexport function isCrowdsaleWallet(json) {\n let data = null;\n try {\n data = JSON.parse(json);\n }\n catch (error) {\n return false;\n }\n return (data.encseed && data.ethaddr);\n}\nexport function isKeystoreWallet(json) {\n let data = null;\n try {\n data = JSON.parse(json);\n }\n catch (error) {\n return false;\n }\n if (!data.version || parseInt(data.version) !== data.version || parseInt(data.version) !== 3) {\n return false;\n }\n // @TODO: Put more checks to make sure it has kdf, iv and all that good stuff\n return true;\n}\n//export function isJsonWallet(json: string): boolean {\n// return (isSecretStorageWallet(json) || isCrowdsaleWallet(json));\n//}\nexport function getJsonWalletAddress(json) {\n if (isCrowdsaleWallet(json)) {\n try {\n return getAddress(JSON.parse(json).ethaddr);\n }\n catch (error) {\n return null;\n }\n }\n if (isKeystoreWallet(json)) {\n try {\n return getAddress(JSON.parse(json).address);\n }\n catch (error) {\n return null;\n }\n }\n return null;\n}\n//# sourceMappingURL=inspect.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 aes from \"aes-js\";\nimport scrypt from \"scrypt-js\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { defaultPath, entropyToMnemonic, HDNode, mnemonicToEntropy } from \"@ethersproject/hdnode\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { pbkdf2 as _pbkdf2 } from \"@ethersproject/pbkdf2\";\nimport { randomBytes } from \"@ethersproject/random\";\nimport { Description } from \"@ethersproject/properties\";\nimport { computeAddress } from \"@ethersproject/transactions\";\nimport { getPassword, looseArrayify, searchPath, uuidV4, zpad } from \"./utils\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Exported Types\nfunction hasMnemonic(value) {\n return (value != null && value.mnemonic && value.mnemonic.phrase);\n}\nexport class KeystoreAccount extends Description {\n isKeystoreAccount(value) {\n return !!(value && value._isKeystoreAccount);\n }\n}\nfunction _decrypt(data, key, ciphertext) {\n const cipher = searchPath(data, \"crypto/cipher\");\n if (cipher === \"aes-128-ctr\") {\n const iv = looseArrayify(searchPath(data, \"crypto/cipherparams/iv\"));\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(key, counter);\n return arrayify(aesCtr.decrypt(ciphertext));\n }\n return null;\n}\nfunction _getAccount(data, key) {\n const ciphertext = looseArrayify(searchPath(data, \"crypto/ciphertext\"));\n const computedMAC = hexlify(keccak256(concat([key.slice(16, 32), ciphertext]))).substring(2);\n if (computedMAC !== searchPath(data, \"crypto/mac\").toLowerCase()) {\n throw new Error(\"invalid password\");\n }\n const privateKey = _decrypt(data, key.slice(0, 16), ciphertext);\n if (!privateKey) {\n logger.throwError(\"unsupported cipher\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"decrypt\"\n });\n }\n const mnemonicKey = key.slice(32, 64);\n const address = computeAddress(privateKey);\n if (data.address) {\n let check = data.address.toLowerCase();\n if (check.substring(0, 2) !== \"0x\") {\n check = \"0x\" + check;\n }\n if (getAddress(check) !== address) {\n throw new Error(\"address mismatch\");\n }\n }\n const account = {\n _isKeystoreAccount: true,\n address: address,\n privateKey: hexlify(privateKey)\n };\n // Version 0.1 x-ethers metadata must contain an encrypted mnemonic phrase\n if (searchPath(data, \"x-ethers/version\") === \"0.1\") {\n const mnemonicCiphertext = looseArrayify(searchPath(data, \"x-ethers/mnemonicCiphertext\"));\n const mnemonicIv = looseArrayify(searchPath(data, \"x-ethers/mnemonicCounter\"));\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const path = searchPath(data, \"x-ethers/path\") || defaultPath;\n const locale = searchPath(data, \"x-ethers/locale\") || \"en\";\n const entropy = arrayify(mnemonicAesCtr.decrypt(mnemonicCiphertext));\n try {\n const mnemonic = entropyToMnemonic(entropy, locale);\n const node = HDNode.fromMnemonic(mnemonic, null, locale).derivePath(path);\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n account.mnemonic = node.mnemonic;\n }\n catch (error) {\n // If we don't have the locale wordlist installed to\n // read this mnemonic, just bail and don't set the\n // mnemonic\n if (error.code !== Logger.errors.INVALID_ARGUMENT || error.argument !== \"wordlist\") {\n throw error;\n }\n }\n }\n return new KeystoreAccount(account);\n}\nfunction pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc) {\n return arrayify(_pbkdf2(passwordBytes, salt, count, dkLen, prfFunc));\n}\nfunction pbkdf2(passwordBytes, salt, count, dkLen, prfFunc) {\n return Promise.resolve(pbkdf2Sync(passwordBytes, salt, count, dkLen, prfFunc));\n}\nfunction _computeKdfKey(data, password, pbkdf2Func, scryptFunc, progressCallback) {\n const passwordBytes = getPassword(password);\n const kdf = searchPath(data, \"crypto/kdf\");\n if (kdf && typeof (kdf) === \"string\") {\n const throwError = function (name, value) {\n return logger.throwArgumentError(\"invalid key-derivation function parameters\", name, value);\n };\n if (kdf.toLowerCase() === \"scrypt\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n const N = parseInt(searchPath(data, \"crypto/kdfparams/n\"));\n const r = parseInt(searchPath(data, \"crypto/kdfparams/r\"));\n const p = parseInt(searchPath(data, \"crypto/kdfparams/p\"));\n // Check for all required parameters\n if (!N || !r || !p) {\n throwError(\"kdf\", kdf);\n }\n // Make sure N is a power of 2\n if ((N & (N - 1)) !== 0) {\n throwError(\"N\", N);\n }\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) {\n throwError(\"dklen\", dkLen);\n }\n return scryptFunc(passwordBytes, salt, N, r, p, 64, progressCallback);\n }\n else if (kdf.toLowerCase() === \"pbkdf2\") {\n const salt = looseArrayify(searchPath(data, \"crypto/kdfparams/salt\"));\n let prfFunc = null;\n const prf = searchPath(data, \"crypto/kdfparams/prf\");\n if (prf === \"hmac-sha256\") {\n prfFunc = \"sha256\";\n }\n else if (prf === \"hmac-sha512\") {\n prfFunc = \"sha512\";\n }\n else {\n throwError(\"prf\", prf);\n }\n const count = parseInt(searchPath(data, \"crypto/kdfparams/c\"));\n const dkLen = parseInt(searchPath(data, \"crypto/kdfparams/dklen\"));\n if (dkLen !== 32) {\n throwError(\"dklen\", dkLen);\n }\n return pbkdf2Func(passwordBytes, salt, count, dkLen, prfFunc);\n }\n }\n return logger.throwArgumentError(\"unsupported key-derivation function\", \"kdf\", kdf);\n}\nexport function decryptSync(json, password) {\n const data = JSON.parse(json);\n const key = _computeKdfKey(data, password, pbkdf2Sync, scrypt.syncScrypt);\n return _getAccount(data, key);\n}\nexport function decrypt(json, password, progressCallback) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = JSON.parse(json);\n const key = yield _computeKdfKey(data, password, pbkdf2, scrypt.scrypt, progressCallback);\n return _getAccount(data, key);\n });\n}\nexport function encrypt(account, password, options, progressCallback) {\n try {\n // Check the address matches the private key\n if (getAddress(account.address) !== computeAddress(account.privateKey)) {\n throw new Error(\"address/privateKey mismatch\");\n }\n // Check the mnemonic (if any) matches the private key\n if (hasMnemonic(account)) {\n const mnemonic = account.mnemonic;\n const node = HDNode.fromMnemonic(mnemonic.phrase, null, mnemonic.locale).derivePath(mnemonic.path || defaultPath);\n if (node.privateKey != account.privateKey) {\n throw new Error(\"mnemonic mismatch\");\n }\n }\n }\n catch (e) {\n return Promise.reject(e);\n }\n // The options are optional, so adjust the call as needed\n if (typeof (options) === \"function\" && !progressCallback) {\n progressCallback = options;\n options = {};\n }\n if (!options) {\n options = {};\n }\n const privateKey = arrayify(account.privateKey);\n const passwordBytes = getPassword(password);\n let entropy = null;\n let path = null;\n let locale = null;\n if (hasMnemonic(account)) {\n const srcMnemonic = account.mnemonic;\n entropy = arrayify(mnemonicToEntropy(srcMnemonic.phrase, srcMnemonic.locale || \"en\"));\n path = srcMnemonic.path || defaultPath;\n locale = srcMnemonic.locale || \"en\";\n }\n let client = options.client;\n if (!client) {\n client = \"ethers.js\";\n }\n // Check/generate the salt\n let salt = null;\n if (options.salt) {\n salt = arrayify(options.salt);\n }\n else {\n salt = randomBytes(32);\n ;\n }\n // Override initialization vector\n let iv = null;\n if (options.iv) {\n iv = arrayify(options.iv);\n if (iv.length !== 16) {\n throw new Error(\"invalid iv\");\n }\n }\n else {\n iv = randomBytes(16);\n }\n // Override the uuid\n let uuidRandom = null;\n if (options.uuid) {\n uuidRandom = arrayify(options.uuid);\n if (uuidRandom.length !== 16) {\n throw new Error(\"invalid uuid\");\n }\n }\n else {\n uuidRandom = randomBytes(16);\n }\n // Override the scrypt password-based key derivation function parameters\n let N = (1 << 17), r = 8, p = 1;\n if (options.scrypt) {\n if (options.scrypt.N) {\n N = options.scrypt.N;\n }\n if (options.scrypt.r) {\n r = options.scrypt.r;\n }\n if (options.scrypt.p) {\n p = options.scrypt.p;\n }\n }\n // We take 64 bytes:\n // - 32 bytes As normal for the Web3 secret storage (derivedKey, macPrefix)\n // - 32 bytes AES key to encrypt mnemonic with (required here to be Ethers Wallet)\n return scrypt.scrypt(passwordBytes, salt, N, r, p, 64, progressCallback).then((key) => {\n key = arrayify(key);\n // This will be used to encrypt the wallet (as per Web3 secret storage)\n const derivedKey = key.slice(0, 16);\n const macPrefix = key.slice(16, 32);\n // This will be used to encrypt the mnemonic phrase (if any)\n const mnemonicKey = key.slice(32, 64);\n // Encrypt the private key\n const counter = new aes.Counter(iv);\n const aesCtr = new aes.ModeOfOperation.ctr(derivedKey, counter);\n const ciphertext = arrayify(aesCtr.encrypt(privateKey));\n // Compute the message authentication code, used to check the password\n const mac = keccak256(concat([macPrefix, ciphertext]));\n // See: https://github.com/ethereum/wiki/wiki/Web3-Secret-Storage-Definition\n const data = {\n address: account.address.substring(2).toLowerCase(),\n id: uuidV4(uuidRandom),\n version: 3,\n Crypto: {\n cipher: \"aes-128-ctr\",\n cipherparams: {\n iv: hexlify(iv).substring(2),\n },\n ciphertext: hexlify(ciphertext).substring(2),\n kdf: \"scrypt\",\n kdfparams: {\n salt: hexlify(salt).substring(2),\n n: N,\n dklen: 32,\n p: p,\n r: r\n },\n mac: mac.substring(2)\n }\n };\n // If we have a mnemonic, encrypt it into the JSON wallet\n if (entropy) {\n const mnemonicIv = randomBytes(16);\n const mnemonicCounter = new aes.Counter(mnemonicIv);\n const mnemonicAesCtr = new aes.ModeOfOperation.ctr(mnemonicKey, mnemonicCounter);\n const mnemonicCiphertext = arrayify(mnemonicAesCtr.encrypt(entropy));\n const now = new Date();\n const timestamp = (now.getUTCFullYear() + \"-\" +\n zpad(now.getUTCMonth() + 1, 2) + \"-\" +\n zpad(now.getUTCDate(), 2) + \"T\" +\n zpad(now.getUTCHours(), 2) + \"-\" +\n zpad(now.getUTCMinutes(), 2) + \"-\" +\n zpad(now.getUTCSeconds(), 2) + \".0Z\");\n data[\"x-ethers\"] = {\n client: client,\n gethFilename: (\"UTC--\" + timestamp + \"--\" + data.address),\n mnemonicCounter: hexlify(mnemonicIv).substring(2),\n mnemonicCiphertext: hexlify(mnemonicCiphertext).substring(2),\n path: path,\n locale: locale,\n version: \"0.1\"\n };\n }\n return JSON.stringify(data);\n });\n}\n//# sourceMappingURL=keystore.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatBytes32String = exports.Utf8ErrorFuncs = exports.toUtf8String = exports.toUtf8CodePoints = exports.toUtf8Bytes = exports._toEscapedUtf8String = exports.nameprep = exports.hexDataSlice = exports.hexDataLength = exports.hexZeroPad = exports.hexValue = exports.hexStripZeros = exports.hexConcat = exports.isHexString = exports.hexlify = exports.base64 = exports.base58 = exports.TransactionDescription = exports.LogDescription = exports.Interface = exports.SigningKey = exports.HDNode = exports.defaultPath = exports.isBytesLike = exports.isBytes = exports.zeroPad = exports.stripZeros = exports.concat = exports.arrayify = exports.shallowCopy = exports.resolveProperties = exports.getStatic = exports.defineReadOnly = exports.deepCopy = exports.checkProperties = exports.poll = exports.fetchJson = exports._fetchData = exports.RLP = exports.Logger = exports.checkResultErrors = exports.FormatTypes = exports.ParamType = exports.FunctionFragment = exports.EventFragment = exports.ErrorFragment = exports.ConstructorFragment = exports.Fragment = exports.defaultAbiCoder = exports.AbiCoder = void 0;\nexports.Indexed = exports.Utf8ErrorReason = exports.UnicodeNormalizationForm = exports.SupportedAlgorithm = exports.mnemonicToSeed = exports.isValidMnemonic = exports.entropyToMnemonic = exports.mnemonicToEntropy = exports.getAccountPath = exports.verifyTypedData = exports.verifyMessage = exports.recoverPublicKey = exports.computePublicKey = exports.recoverAddress = exports.computeAddress = exports.getJsonWalletAddress = exports.TransactionTypes = exports.serializeTransaction = exports.parseTransaction = exports.accessListify = exports.joinSignature = exports.splitSignature = exports.soliditySha256 = exports.solidityKeccak256 = exports.solidityPack = exports.shuffled = exports.randomBytes = exports.sha512 = exports.sha256 = exports.ripemd160 = exports.keccak256 = exports.computeHmac = exports.commify = exports.parseUnits = exports.formatUnits = exports.parseEther = exports.formatEther = exports.isAddress = exports.getCreate2Address = exports.getContractAddress = exports.getIcapAddress = exports.getAddress = exports._TypedDataEncoder = exports.id = exports.isValidName = exports.namehash = exports.hashMessage = exports.parseBytes32String = void 0;\nvar abi_1 = require(\"@ethersproject/abi\");\nObject.defineProperty(exports, \"AbiCoder\", { enumerable: true, get: function () { return abi_1.AbiCoder; } });\nObject.defineProperty(exports, \"checkResultErrors\", { enumerable: true, get: function () { return abi_1.checkResultErrors; } });\nObject.defineProperty(exports, \"ConstructorFragment\", { enumerable: true, get: function () { return abi_1.ConstructorFragment; } });\nObject.defineProperty(exports, \"defaultAbiCoder\", { enumerable: true, get: function () { return abi_1.defaultAbiCoder; } });\nObject.defineProperty(exports, \"ErrorFragment\", { enumerable: true, get: function () { return abi_1.ErrorFragment; } });\nObject.defineProperty(exports, \"EventFragment\", { enumerable: true, get: function () { return abi_1.EventFragment; } });\nObject.defineProperty(exports, \"FormatTypes\", { enumerable: true, get: function () { return abi_1.FormatTypes; } });\nObject.defineProperty(exports, \"Fragment\", { enumerable: true, get: function () { return abi_1.Fragment; } });\nObject.defineProperty(exports, \"FunctionFragment\", { enumerable: true, get: function () { return abi_1.FunctionFragment; } });\nObject.defineProperty(exports, \"Indexed\", { enumerable: true, get: function () { return abi_1.Indexed; } });\nObject.defineProperty(exports, \"Interface\", { enumerable: true, get: function () { return abi_1.Interface; } });\nObject.defineProperty(exports, \"LogDescription\", { enumerable: true, get: function () { return abi_1.LogDescription; } });\nObject.defineProperty(exports, \"ParamType\", { enumerable: true, get: function () { return abi_1.ParamType; } });\nObject.defineProperty(exports, \"TransactionDescription\", { enumerable: true, get: function () { return abi_1.TransactionDescription; } });\nvar address_1 = require(\"@ethersproject/address\");\nObject.defineProperty(exports, \"getAddress\", { enumerable: true, get: function () { return address_1.getAddress; } });\nObject.defineProperty(exports, \"getCreate2Address\", { enumerable: true, get: function () { return address_1.getCreate2Address; } });\nObject.defineProperty(exports, \"getContractAddress\", { enumerable: true, get: function () { return address_1.getContractAddress; } });\nObject.defineProperty(exports, \"getIcapAddress\", { enumerable: true, get: function () { return address_1.getIcapAddress; } });\nObject.defineProperty(exports, \"isAddress\", { enumerable: true, get: function () { return address_1.isAddress; } });\nvar base64 = __importStar(require(\"@ethersproject/base64\"));\nexports.base64 = base64;\nvar basex_1 = require(\"@ethersproject/basex\");\nObject.defineProperty(exports, \"base58\", { enumerable: true, get: function () { return basex_1.Base58; } });\nvar bytes_1 = require(\"@ethersproject/bytes\");\nObject.defineProperty(exports, \"arrayify\", { enumerable: true, get: function () { return bytes_1.arrayify; } });\nObject.defineProperty(exports, \"concat\", { enumerable: true, get: function () { return bytes_1.concat; } });\nObject.defineProperty(exports, \"hexConcat\", { enumerable: true, get: function () { return bytes_1.hexConcat; } });\nObject.defineProperty(exports, \"hexDataSlice\", { enumerable: true, get: function () { return bytes_1.hexDataSlice; } });\nObject.defineProperty(exports, \"hexDataLength\", { enumerable: true, get: function () { return bytes_1.hexDataLength; } });\nObject.defineProperty(exports, \"hexlify\", { enumerable: true, get: function () { return bytes_1.hexlify; } });\nObject.defineProperty(exports, \"hexStripZeros\", { enumerable: true, get: function () { return bytes_1.hexStripZeros; } });\nObject.defineProperty(exports, \"hexValue\", { enumerable: true, get: function () { return bytes_1.hexValue; } });\nObject.defineProperty(exports, \"hexZeroPad\", { enumerable: true, get: function () { return bytes_1.hexZeroPad; } });\nObject.defineProperty(exports, \"isBytes\", { enumerable: true, get: function () { return bytes_1.isBytes; } });\nObject.defineProperty(exports, \"isBytesLike\", { enumerable: true, get: function () { return bytes_1.isBytesLike; } });\nObject.defineProperty(exports, \"isHexString\", { enumerable: true, get: function () { return bytes_1.isHexString; } });\nObject.defineProperty(exports, \"joinSignature\", { enumerable: true, get: function () { return bytes_1.joinSignature; } });\nObject.defineProperty(exports, \"zeroPad\", { enumerable: true, get: function () { return bytes_1.zeroPad; } });\nObject.defineProperty(exports, \"splitSignature\", { enumerable: true, get: function () { return bytes_1.splitSignature; } });\nObject.defineProperty(exports, \"stripZeros\", { enumerable: true, get: function () { return bytes_1.stripZeros; } });\nvar hash_1 = require(\"@ethersproject/hash\");\nObject.defineProperty(exports, \"_TypedDataEncoder\", { enumerable: true, get: function () { return hash_1._TypedDataEncoder; } });\nObject.defineProperty(exports, \"hashMessage\", { enumerable: true, get: function () { return hash_1.hashMessage; } });\nObject.defineProperty(exports, \"id\", { enumerable: true, get: function () { return hash_1.id; } });\nObject.defineProperty(exports, \"isValidName\", { enumerable: true, get: function () { return hash_1.isValidName; } });\nObject.defineProperty(exports, \"namehash\", { enumerable: true, get: function () { return hash_1.namehash; } });\nvar hdnode_1 = require(\"@ethersproject/hdnode\");\nObject.defineProperty(exports, \"defaultPath\", { enumerable: true, get: function () { return hdnode_1.defaultPath; } });\nObject.defineProperty(exports, \"entropyToMnemonic\", { enumerable: true, get: function () { return hdnode_1.entropyToMnemonic; } });\nObject.defineProperty(exports, \"getAccountPath\", { enumerable: true, get: function () { return hdnode_1.getAccountPath; } });\nObject.defineProperty(exports, \"HDNode\", { enumerable: true, get: function () { return hdnode_1.HDNode; } });\nObject.defineProperty(exports, \"isValidMnemonic\", { enumerable: true, get: function () { return hdnode_1.isValidMnemonic; } });\nObject.defineProperty(exports, \"mnemonicToEntropy\", { enumerable: true, get: function () { return hdnode_1.mnemonicToEntropy; } });\nObject.defineProperty(exports, \"mnemonicToSeed\", { enumerable: true, get: function () { return hdnode_1.mnemonicToSeed; } });\nvar json_wallets_1 = require(\"@ethersproject/json-wallets\");\nObject.defineProperty(exports, \"getJsonWalletAddress\", { enumerable: true, get: function () { return json_wallets_1.getJsonWalletAddress; } });\nvar keccak256_1 = require(\"@ethersproject/keccak256\");\nObject.defineProperty(exports, \"keccak256\", { enumerable: true, get: function () { return keccak256_1.keccak256; } });\nvar logger_1 = require(\"@ethersproject/logger\");\nObject.defineProperty(exports, \"Logger\", { enumerable: true, get: function () { return logger_1.Logger; } });\nvar sha2_1 = require(\"@ethersproject/sha2\");\nObject.defineProperty(exports, \"computeHmac\", { enumerable: true, get: function () { return sha2_1.computeHmac; } });\nObject.defineProperty(exports, \"ripemd160\", { enumerable: true, get: function () { return sha2_1.ripemd160; } });\nObject.defineProperty(exports, \"sha256\", { enumerable: true, get: function () { return sha2_1.sha256; } });\nObject.defineProperty(exports, \"sha512\", { enumerable: true, get: function () { return sha2_1.sha512; } });\nvar solidity_1 = require(\"@ethersproject/solidity\");\nObject.defineProperty(exports, \"solidityKeccak256\", { enumerable: true, get: function () { return solidity_1.keccak256; } });\nObject.defineProperty(exports, \"solidityPack\", { enumerable: true, get: function () { return solidity_1.pack; } });\nObject.defineProperty(exports, \"soliditySha256\", { enumerable: true, get: function () { return solidity_1.sha256; } });\nvar random_1 = require(\"@ethersproject/random\");\nObject.defineProperty(exports, \"randomBytes\", { enumerable: true, get: function () { return random_1.randomBytes; } });\nObject.defineProperty(exports, \"shuffled\", { enumerable: true, get: function () { return random_1.shuffled; } });\nvar properties_1 = require(\"@ethersproject/properties\");\nObject.defineProperty(exports, \"checkProperties\", { enumerable: true, get: function () { return properties_1.checkProperties; } });\nObject.defineProperty(exports, \"deepCopy\", { enumerable: true, get: function () { return properties_1.deepCopy; } });\nObject.defineProperty(exports, \"defineReadOnly\", { enumerable: true, get: function () { return properties_1.defineReadOnly; } });\nObject.defineProperty(exports, \"getStatic\", { enumerable: true, get: function () { return properties_1.getStatic; } });\nObject.defineProperty(exports, \"resolveProperties\", { enumerable: true, get: function () { return properties_1.resolveProperties; } });\nObject.defineProperty(exports, \"shallowCopy\", { enumerable: true, get: function () { return properties_1.shallowCopy; } });\nvar RLP = __importStar(require(\"@ethersproject/rlp\"));\nexports.RLP = RLP;\nvar signing_key_1 = require(\"@ethersproject/signing-key\");\nObject.defineProperty(exports, \"computePublicKey\", { enumerable: true, get: function () { return signing_key_1.computePublicKey; } });\nObject.defineProperty(exports, \"recoverPublicKey\", { enumerable: true, get: function () { return signing_key_1.recoverPublicKey; } });\nObject.defineProperty(exports, \"SigningKey\", { enumerable: true, get: function () { return signing_key_1.SigningKey; } });\nvar strings_1 = require(\"@ethersproject/strings\");\nObject.defineProperty(exports, \"formatBytes32String\", { enumerable: true, get: function () { return strings_1.formatBytes32String; } });\nObject.defineProperty(exports, \"nameprep\", { enumerable: true, get: function () { return strings_1.nameprep; } });\nObject.defineProperty(exports, \"parseBytes32String\", { enumerable: true, get: function () { return strings_1.parseBytes32String; } });\nObject.defineProperty(exports, \"_toEscapedUtf8String\", { enumerable: true, get: function () { return strings_1._toEscapedUtf8String; } });\nObject.defineProperty(exports, \"toUtf8Bytes\", { enumerable: true, get: function () { return strings_1.toUtf8Bytes; } });\nObject.defineProperty(exports, \"toUtf8CodePoints\", { enumerable: true, get: function () { return strings_1.toUtf8CodePoints; } });\nObject.defineProperty(exports, \"toUtf8String\", { enumerable: true, get: function () { return strings_1.toUtf8String; } });\nObject.defineProperty(exports, \"Utf8ErrorFuncs\", { enumerable: true, get: function () { return strings_1.Utf8ErrorFuncs; } });\nvar transactions_1 = require(\"@ethersproject/transactions\");\nObject.defineProperty(exports, \"accessListify\", { enumerable: true, get: function () { return transactions_1.accessListify; } });\nObject.defineProperty(exports, \"computeAddress\", { enumerable: true, get: function () { return transactions_1.computeAddress; } });\nObject.defineProperty(exports, \"parseTransaction\", { enumerable: true, get: function () { return transactions_1.parse; } });\nObject.defineProperty(exports, \"recoverAddress\", { enumerable: true, get: function () { return transactions_1.recoverAddress; } });\nObject.defineProperty(exports, \"serializeTransaction\", { enumerable: true, get: function () { return transactions_1.serialize; } });\nObject.defineProperty(exports, \"TransactionTypes\", { enumerable: true, get: function () { return transactions_1.TransactionTypes; } });\nvar units_1 = require(\"@ethersproject/units\");\nObject.defineProperty(exports, \"commify\", { enumerable: true, get: function () { return units_1.commify; } });\nObject.defineProperty(exports, \"formatEther\", { enumerable: true, get: function () { return units_1.formatEther; } });\nObject.defineProperty(exports, \"parseEther\", { enumerable: true, get: function () { return units_1.parseEther; } });\nObject.defineProperty(exports, \"formatUnits\", { enumerable: true, get: function () { return units_1.formatUnits; } });\nObject.defineProperty(exports, \"parseUnits\", { enumerable: true, get: function () { return units_1.parseUnits; } });\nvar wallet_1 = require(\"@ethersproject/wallet\");\nObject.defineProperty(exports, \"verifyMessage\", { enumerable: true, get: function () { return wallet_1.verifyMessage; } });\nObject.defineProperty(exports, \"verifyTypedData\", { enumerable: true, get: function () { return wallet_1.verifyTypedData; } });\nvar web_1 = require(\"@ethersproject/web\");\nObject.defineProperty(exports, \"_fetchData\", { enumerable: true, get: function () { return web_1._fetchData; } });\nObject.defineProperty(exports, \"fetchJson\", { enumerable: true, get: function () { return web_1.fetchJson; } });\nObject.defineProperty(exports, \"poll\", { enumerable: true, get: function () { return web_1.poll; } });\n////////////////////////\n// Enums\nvar sha2_2 = require(\"@ethersproject/sha2\");\nObject.defineProperty(exports, \"SupportedAlgorithm\", { enumerable: true, get: function () { return sha2_2.SupportedAlgorithm; } });\nvar strings_2 = require(\"@ethersproject/strings\");\nObject.defineProperty(exports, \"UnicodeNormalizationForm\", { enumerable: true, get: function () { return strings_2.UnicodeNormalizationForm; } });\nObject.defineProperty(exports, \"Utf8ErrorReason\", { enumerable: true, get: function () { return strings_2.Utf8ErrorReason; } });\n//# sourceMappingURL=utils.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { computeHmac } from \"@ethersproject/sha2\";\nexport function pbkdf2(password, salt, iterations, keylen, hashAlgorithm) {\n password = arrayify(password);\n salt = arrayify(salt);\n let hLen;\n let l = 1;\n const DK = new Uint8Array(keylen);\n const block1 = new Uint8Array(salt.length + 4);\n block1.set(salt);\n //salt.copy(block1, 0, 0, salt.length)\n let r;\n let T;\n for (let i = 1; i <= l; i++) {\n //block1.writeUInt32BE(i, salt.length)\n block1[salt.length] = (i >> 24) & 0xff;\n block1[salt.length + 1] = (i >> 16) & 0xff;\n block1[salt.length + 2] = (i >> 8) & 0xff;\n block1[salt.length + 3] = i & 0xff;\n //let U = createHmac(password).update(block1).digest();\n let U = arrayify(computeHmac(hashAlgorithm, password, block1));\n if (!hLen) {\n hLen = U.length;\n T = new Uint8Array(hLen);\n l = Math.ceil(keylen / hLen);\n r = keylen - (l - 1) * hLen;\n }\n //U.copy(T, 0, 0, hLen)\n T.set(U);\n for (let j = 1; j < iterations; j++) {\n //U = createHmac(password).update(U).digest();\n U = arrayify(computeHmac(hashAlgorithm, password, U));\n for (let k = 0; k < hLen; k++)\n T[k] ^= U[k];\n }\n const destPos = (i - 1) * hLen;\n const len = (i === l ? r : hLen);\n //T.copy(DK, destPos, 0, len)\n DK.set(arrayify(T).slice(0, len), destPos);\n }\n return hexlify(DK);\n}\n//# sourceMappingURL=pbkdf2.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\";\nexport class AlchemyWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new AlchemyProvider(network, apiKey);\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.alchemyapi.io/v2/\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.alchemyapi.io/v2/\";\n break;\n case \"kovan\":\n host = \"eth-kovan.alchemyapi.io/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-rinkeby\":\n host = \"arb-rinkeby.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-kovan\":\n host = \"opt-kovan.g.alchemy.com/v2/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt, url) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\n//# sourceMappingURL=alchemy-provider.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 { ForkEvent, Provider } from \"@ethersproject/abstract-provider\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { namehash } from \"@ethersproject/hash\";\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport bech32 from \"bech32\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Formatter } from \"./formatter\";\n//////////////////////////////\n// Event Serializeing\nfunction checkTopic(topic) {\n if (topic == null) {\n return \"null\";\n }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\nfunction serializeTopics(topics) {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) {\n topics.pop();\n }\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n // Only track unique OR-topics\n const unique = {};\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n return sorted.join(\"|\");\n }\n else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\nfunction deserializeTopics(data) {\n if (data === \"\") {\n return [];\n }\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") {\n return [];\n }\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null : topic);\n });\n return ((comps.length === 1) ? comps[0] : comps);\n });\n}\nfunction getEventTag(eventName) {\n if (typeof (eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n }\n else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n }\n else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n }\n else if (eventName && typeof (eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n throw new Error(\"invalid event - \" + eventName);\n}\n//////////////////////////////\n// Helper Object\nfunction getTime() {\n return (new Date()).getTime();\n}\nfunction stall(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n//////////////////////////////\n// Provider Object\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\nconst PollableEvents = [\"block\", \"network\", \"pending\", \"poll\"];\nexport class Event {\n constructor(tag, listener, once) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n }\n get event() {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n get type() {\n return this.tag.split(\":\")[0];\n }\n get hash() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") {\n return null;\n }\n return comps[1];\n }\n get filter() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") {\n return null;\n }\n const address = comps[1];\n const topics = deserializeTopics(comps[2]);\n const filter = {};\n if (topics.length > 0) {\n filter.topics = topics;\n }\n if (address && address !== \"*\") {\n filter.address = address;\n }\n return filter;\n }\n pollable() {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n;\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\nfunction bytes32ify(value) {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data) {\n return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)]));\n}\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\nfunction _parseString(result) {\n try {\n return toUtf8String(_parseBytes(result));\n }\n catch (error) { }\n return null;\n}\nfunction _parseBytes(result) {\n if (result === \"0x\") {\n return null;\n }\n const offset = BigNumber.from(hexDataSlice(result, 0, 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link) {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n }\n else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n }\n else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n return `https:/\\/gateway.ipfs.io/ipfs/${link}`;\n}\nexport class Resolver {\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider, address, name, resolvedAddress) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n _fetchBytes(selector, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n data: hexConcat([selector, namehash(this.name), (parameters || \"0x\")])\n };\n try {\n return _parseBytes(yield this.provider.call(tx));\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n return null;\n }\n });\n }\n _getAddress(coinType, hexBytes) {\n const coinInfo = coinInfos[String(coinType)];\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${coinType}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`\n });\n }\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n const bytes = arrayify(hexBytes);\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2pkh], (\"0x\" + p2pkh[2])]));\n }\n }\n }\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2sh], (\"0x\" + p2sh[2])]));\n }\n }\n }\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n }\n else {\n version = -1;\n }\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n return null;\n }\n getAddress(coinType) {\n return __awaiter(this, void 0, void 0, function* () {\n if (coinType == null) {\n coinType = 60;\n }\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const transaction = {\n to: this.address,\n data: (\"0x3b3b57de\" + namehash(this.name).substring(2))\n };\n const hexBytes = yield this.provider.call(transaction);\n // No address\n if (hexBytes === \"0x\" || hexBytes === HashZero) {\n return null;\n }\n return this.provider.formatter.callAddress(hexBytes);\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n }\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = yield this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n // No address\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`,\n coinType: coinType,\n data: hexBytes\n });\n }\n return address;\n });\n }\n getAvatar() {\n return __awaiter(this, void 0, void 0, function* () {\n const linkage = [{ type: \"name\", content: this.name }];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = yield this.getText(\"avatar\");\n if (avatar == null) {\n return null;\n }\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) {\n continue;\n }\n const scheme = match[1].toLowerCase();\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\" : \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n // The owner of this name\n const owner = (this._resolvedAddress || (yield this.getAddress()));\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) {\n return null;\n }\n const addr = yield this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(yield this.provider.call({\n to: addr, data: hexConcat([\"0x6352211e\", tokenId])\n }));\n if (owner !== tokenOwner) {\n return null;\n }\n linkage.push({ type: \"owner\", content: tokenOwner });\n }\n else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(yield this.provider.call({\n to: addr, data: hexConcat([\"0x00fdd58e\", hexZeroPad(owner, 32), tokenId])\n }));\n if (balance.isZero()) {\n return null;\n }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([selector, tokenId])\n };\n let metadataUrl = _parseString(yield this.provider.call(tx));\n if (metadataUrl == null) {\n return null;\n }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n // Get the token metadata\n const metadata = yield fetchJson(metadataUrl);\n if (!metadata) {\n return null;\n }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof (imageUrl) !== \"string\") {\n return null;\n }\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n }\n else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) {\n return null;\n }\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n linkage.push({ type: \"url\", content: imageUrl });\n return { linkage, url: imageUrl };\n }\n }\n }\n }\n catch (error) { }\n return null;\n });\n }\n getContentHash() {\n return __awaiter(this, void 0, void 0, function* () {\n // keccak256(\"contenthash()\")\n const hexBytes = yield this._fetchBytes(\"0xbc1c58d1\");\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/);\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1];\n }\n }\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n });\n }\n getText(key) {\n return __awaiter(this, void 0, void 0, function* () {\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]);\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32))]);\n }\n const hexBytes = yield this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n return toUtf8String(hexBytes);\n });\n }\n}\nlet defaultFormatter = null;\nlet nextPollId = 1;\nexport class BaseProvider extends Provider {\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n constructor(network) {\n logger.checkNew(new.target, Provider);\n super();\n // Events being listened to\n this._events = [];\n this._emitted = { block: -2 };\n this.formatter = new.target.getFormatter();\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) {\n network = this.detectNetwork();\n }\n if (network instanceof Promise) {\n this._networkPromise = network;\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n }\n else {\n const knownNetwork = getStatic(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n }\n else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n this._maxInternalBlockNumber = -1024;\n this._lastBlockNumber = -2;\n this._pollingInterval = 4000;\n this._fastQueryDate = 0;\n }\n _ready() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._network == null) {\n let network = null;\n if (this._networkPromise) {\n try {\n network = yield this._networkPromise;\n }\n catch (error) { }\n }\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = yield this.detectNetwork();\n }\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n }\n else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n return this._network;\n });\n }\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready() {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter() {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network) {\n return getNetwork((network == null) ? \"homestead\" : network);\n }\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n _getInternalBlockNumber(maxAge) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._ready();\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n try {\n // Check the result is not too stale\n const result = yield internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n // Too old; fetch a new value\n break;\n }\n catch (error) {\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n const reqTime = getTime();\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", {}),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n const respTime = getTime();\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) {\n blockNumber = this._maxInternalBlockNumber;\n }\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n this._internalBlockNumber = checkInternalBlockNumber;\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n return (yield checkInternalBlockNumber).blockNumber;\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n const pollId = nextPollId++;\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners = [];\n let blockNumber = null;\n try {\n blockNumber = yield this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n }\n catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n if (Math.abs((this._emitted.block) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${blockNumber})`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n }\n else {\n // Notify all listener for each block that has passed\n for (let i = this._emitted.block + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n // The emitted block was updated, check for obsolete events\n if (this._emitted.block !== blockNumber) {\n this._emitted.block = blockNumber;\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") {\n return;\n }\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") {\n return;\n }\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) {\n return null;\n }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error) => { this.emit(\"error\", error); });\n runners.push(runner);\n break;\n }\n case \"filter\": {\n const filter = event.filter;\n filter.fromBlock = this._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n const runner = this.getLogs(filter).then((logs) => {\n if (logs.length === 0) {\n return;\n }\n logs.forEach((log) => {\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n this.emit(filter, log);\n });\n }).catch((error) => { this.emit(\"error\", error); });\n runners.push(runner);\n break;\n }\n }\n });\n this._lastBlockNumber = blockNumber;\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n return;\n });\n }\n // Deprecated; do not use this\n resetEventsBlock(blockNumber) {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) {\n this.poll();\n }\n }\n get network() {\n return this._network;\n }\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n });\n }\n getNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const network = yield this._ready();\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = yield this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n yield stall(0);\n return this._network;\n }\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n this.emit(\"error\", error);\n throw error;\n }\n return network;\n });\n }\n get blockNumber() {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n return (this._fastBlockNumber != null) ? this._fastBlockNumber : -1;\n }\n get polling() {\n return (this._poller != null);\n }\n set polling(value) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) {\n this.poll();\n }\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n }\n else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n get pollingInterval() {\n return this._pollingInterval;\n }\n set pollingInterval(value) {\n if (typeof (value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n this._pollingInterval = value;\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n _getFastBlockNumber() {\n const now = getTime();\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n return this._fastBlockNumberPromise;\n }\n _setFastBlockNumber(blockNumber) {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) {\n return;\n }\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n waitForTransaction(transactionHash, confirmations, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1 : confirmations, timeout || 0, null);\n });\n }\n _waitForTransaction(transactionHash, confirmations, timeout, replaceable) {\n return __awaiter(this, void 0, void 0, function* () {\n const receipt = yield this.getTransactionReceipt(transactionHash);\n // Receipt is already good\n if ((receipt ? receipt.confirmations : 0) >= confirmations) {\n return receipt;\n }\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs = [];\n let done = false;\n const alreadyDone = function () {\n if (done) {\n return true;\n }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n const minedHandler = (receipt) => {\n if (receipt.confirmations < confirmations) {\n return;\n }\n if (alreadyDone()) {\n return;\n }\n resolve(receipt);\n };\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock = null;\n const replaceHandler = (blockNumber) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n yield stall(1000);\n this.getTransactionCount(replaceable.from).then((nonce) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n }\n else {\n // First check if the transaction was mined\n {\n const mined = yield this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) {\n return;\n }\n }\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n while (scannedBlock <= blockNumber) {\n if (done) {\n return;\n }\n const block = yield this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n // Successfully mined!\n if (tx.hash === transactionHash) {\n return;\n }\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) {\n return;\n }\n // Get the receipt of the replacement\n const receipt = yield this.waitForTransaction(tx.hash, confirmations);\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) {\n return;\n }\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n }\n else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\";\n }\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n return;\n }\n }\n scannedBlock++;\n }\n }\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n }), (error) => {\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n });\n });\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n if (typeof (timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) {\n return;\n }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) {\n timer.unref();\n }\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n });\n }\n getBlockNumber() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._getInternalBlockNumber(0);\n });\n }\n getGasPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const result = yield this.perform(\"getGasPrice\", {});\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n });\n }\n getBalance(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n });\n }\n getTransactionCount(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n });\n }\n getCode(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n });\n }\n getStorageAt(addressOrName, position, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = yield this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n });\n }\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx, hash, startBlock) {\n if (hash != null && hexDataLength(hash) !== 32) {\n throw new Error(\"invalid response - sendTransaction\");\n }\n const result = tx;\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n result.wait = (confirms, timeout) => __awaiter(this, void 0, void 0, function* () {\n if (confirms == null) {\n confirms = 1;\n }\n if (timeout == null) {\n timeout = 0;\n }\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n const receipt = yield this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) {\n return null;\n }\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n });\n return result;\n }\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const hexTx = yield Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) {\n tx.confirmations = 0;\n }\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = yield this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n }\n catch (error) {\n error.transaction = tx;\n error.transactionHash = tx.hash;\n throw error;\n }\n });\n }\n _getTransactionRequest(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const values = yield transaction;\n const tx = {};\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v) : null));\n });\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v) : null));\n });\n [\"type\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v : null));\n });\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n [\"data\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v) : null));\n });\n return this.formatter.transactionRequest(yield resolveProperties(tx));\n });\n }\n _getFilter(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n filter = yield filter;\n const result = {};\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n [\"blockHash\", \"topics\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = filter[key];\n });\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = this._getBlockTag(filter[key]);\n });\n return this.formatter.filter(yield resolveProperties(result));\n });\n }\n call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"call\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params, result, error\n });\n }\n });\n }\n estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n const result = yield this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n });\n }\n _getAddress(addressOrName) {\n return __awaiter(this, void 0, void 0, function* () {\n addressOrName = yield addressOrName;\n if (typeof (addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n const address = yield this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${JSON.stringify(addressOrName)})`\n });\n }\n return address;\n });\n }\n _getBlock(blockHashOrBlockTag, includeTransactions) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n blockHashOrBlockTag = yield blockHashOrBlockTag;\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n const params = {\n includeTransactions: !!includeTransactions\n };\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n }\n else {\n try {\n params.blockTag = yield this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n }\n catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const block = yield this.perform(\"getBlock\", params);\n // Block was not found\n if (block == null) {\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) {\n return null;\n }\n }\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) {\n return null;\n }\n }\n // Retry on the next block\n return undefined;\n }\n // Add transactions\n if (includeTransactions) {\n let blockNumber = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n }\n const blockWithTxs = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n return this.formatter.block(block);\n }), { oncePoll: this });\n });\n }\n getBlock(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, false));\n }\n getBlockWithTransactions(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, true));\n }\n getTransaction(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransaction\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n const tx = this.formatter.transactionResponse(result);\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n return this._wrapTransaction(tx);\n }), { oncePoll: this });\n });\n }\n getTransactionReceipt(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransactionReceipt\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) {\n return undefined;\n }\n const receipt = this.formatter.receipt(result);\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n }\n else if (receipt.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n receipt.confirmations = confirmations;\n }\n return receipt;\n }), { oncePoll: this });\n });\n }\n getLogs(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({ filter: this._getFilter(filter) });\n const logs = yield this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) {\n log.removed = false;\n }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n });\n }\n getEtherPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n return this.perform(\"getEtherPrice\", {});\n });\n }\n _getBlockTag(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n blockTag = yield blockTag;\n if (typeof (blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n let blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) {\n blockNumber = 0;\n }\n return this.formatter.blockTag(blockNumber);\n }\n return this.formatter.blockTag(blockTag);\n });\n }\n getResolver(name) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const address = yield this._getResolver(name);\n if (address == null) {\n return null;\n }\n return new Resolver(this, address, name);\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n });\n }\n _getResolver(name) {\n return __awaiter(this, void 0, void 0, function* () {\n // Get the resolver from the blockchain\n const network = yield this.getNetwork();\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\"network does not support ENS\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"ENS\", network: network.name });\n }\n // keccak256(\"resolver(bytes32)\")\n const transaction = {\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n };\n try {\n return this.formatter.callAddress(yield this.call(transaction));\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n });\n }\n resolveName(name) {\n return __awaiter(this, void 0, void 0, function* () {\n name = yield name;\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n }\n catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) {\n throw error;\n }\n }\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n // Get the addr from the resovler\n const resolver = yield this.getResolver(name);\n if (!resolver) {\n return null;\n }\n return yield resolver.getAddress();\n });\n }\n lookupAddress(address) {\n return __awaiter(this, void 0, void 0, function* () {\n address = yield address;\n address = this.formatter.address(address);\n const reverseName = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddress = yield this._getResolver(reverseName);\n if (!resolverAddress) {\n return null;\n }\n // keccak(\"name(bytes32)\")\n let bytes = arrayify(yield this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(reverseName).substring(2))\n }));\n // Strip off the dynamic string pointer (0x20)\n if (bytes.length < 32 || !BigNumber.from(bytes.slice(0, 32)).eq(32)) {\n return null;\n }\n bytes = bytes.slice(32);\n // Not a length-prefixed string\n if (bytes.length < 32) {\n return null;\n }\n // Get the length of the string (from the length-prefix)\n const length = BigNumber.from(bytes.slice(0, 32)).toNumber();\n bytes = bytes.slice(32);\n // Length longer than available data\n if (length > bytes.length) {\n return null;\n }\n const name = toUtf8String(bytes.slice(0, length));\n // Make sure the reverse record matches the foward record\n const addr = yield this.resolveName(name);\n if (addr != address) {\n return null;\n }\n return name;\n });\n }\n getAvatar(nameOrAddress) {\n return __awaiter(this, void 0, void 0, function* () {\n let resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n const reverseName = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddress = yield this._getResolver(reverseName);\n if (!resolverAddress) {\n return null;\n }\n resolver = new Resolver(this, resolverAddress, \"_\", address);\n }\n else {\n // ENS name; forward lookup\n resolver = yield this.getResolver(nameOrAddress);\n if (!resolver) {\n return null;\n }\n }\n const avatar = yield resolver.getAvatar();\n if (avatar == null) {\n return null;\n }\n return avatar.url;\n });\n }\n perform(method, params) {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n _startEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _stopEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _addEventListener(eventName, listener, once) {\n const event = new Event(getEventTag(eventName), listener, once);\n this._events.push(event);\n this._startEvent(event);\n return this;\n }\n on(eventName, listener) {\n return this._addEventListener(eventName, listener, false);\n }\n once(eventName, listener) {\n return this._addEventListener(eventName, listener, true);\n }\n emit(eventName, ...args) {\n let result = false;\n let stopped = [];\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n result = true;\n if (event.once) {\n stopped.push(event);\n return false;\n }\n return true;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return result;\n }\n listenerCount(eventName) {\n if (!eventName) {\n return this._events.length;\n }\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n listeners(eventName) {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n off(eventName, listener) {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n const stopped = [];\n let found = false;\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) {\n return true;\n }\n if (found) {\n return true;\n }\n found = true;\n stopped.push(event);\n return false;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n removeAllListeners(eventName) {\n let stopped = [];\n if (eventName == null) {\n stopped = this._events;\n this._events = [];\n }\n else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n stopped.push(event);\n return false;\n });\n }\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n}\n//# sourceMappingURL=base-provider.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 { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return host;\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = yield _super.perform.call(this, \"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n return _super.perform.call(this, method, params);\n });\n }\n}\n//# sourceMappingURL=cloudflare-provider.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 { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction) {\n const result = {};\n for (let key in transaction) {\n if (transaction[key] == null) {\n continue;\n }\n let value = transaction[key];\n if (key === \"type\" && value === 0) {\n continue;\n }\n // Quantity-types require no leading zero, unless 0\n if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) {\n value = hexValue(hexlify(value));\n }\n else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${set.address}\",storageKeys:[\"${set.storageKeys.join('\",\"')}\"]}`;\n }).join(\",\") + \"]\";\n }\n else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\nfunction getResult(result) {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n if (result.status != 1 || result.message != \"OK\") {\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n return result.result;\n}\nfunction getJsonResult(result) {\n // This response indicates we are being throttled\n if (result && result.status == 0 && result.message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n if (result.error) {\n // @TODO: not any\n const error = new Error(result.error.message || \"unknown error\");\n if (result.error.code) {\n error.code = result.error.code;\n }\n if (result.error.data) {\n error.data = result.error.data;\n }\n throw error;\n }\n return result.result;\n}\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag) {\n if (blockTag === \"pending\") {\n throw new Error(\"pending not supported\");\n }\n if (blockTag === \"latest\") {\n return blockTag;\n }\n return parseInt(blockTag.substring(2), 16);\n}\nconst defaultApiKey = \"9D13ZE7XSBTJ94N9BNJ2MA33VMAY2YPIRB\";\nfunction checkError(method, error, transaction) {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) {\n data = \"0x\" + data.replace(/^.*0x/i, \"\");\n }\n if (isHexString(data)) {\n return data;\n }\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nexport class EtherscanProvider extends BaseProvider {\n constructor(network, apiKey) {\n logger.checkNew(new.target, EtherscanProvider);\n super(network);\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || defaultApiKey);\n }\n getBaseUrl() {\n switch (this.network ? this.network.name : \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"ropsten\":\n return \"https:/\\/api-ropsten.etherscan.io\";\n case \"rinkeby\":\n return \"https:/\\/api-rinkeby.etherscan.io\";\n case \"kovan\":\n return \"https:/\\/api-kovan.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n default:\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", name);\n }\n getUrl(module, params) {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${key}=${value}`;\n }\n return accum;\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${this.apiKey}` : \"\");\n return `${this.baseUrl}/api?module=${module}${query}${apiKey}`;\n }\n getPostUrl() {\n return `${this.baseUrl}/api`;\n }\n getPostData(module, params) {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n fetch(module, params, post) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = (post ? this.getPostUrl() : this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params) : null);\n const procFunc = (module === \"proxy\") ? getJsonResult : getResult;\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n const connection = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt, url) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n let payloadStr = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${key}=${payload[key]}`;\n }).join(\"&\");\n }\n const result = yield fetchJson(connection, payloadStr, procFunc || getJsonResult);\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n return result;\n });\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.network;\n });\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\" : \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n case \"getLogs\": {\n const args = { action: \"getLogs\" };\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof (topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n const logs = yield this.fetch(\"logs\", args);\n // Cache txHash => blockHash\n let blocks = {};\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) {\n continue;\n }\n if (blocks[log.blockNumber] == null) {\n const block = yield this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n return logs;\n }\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") {\n return 0.0;\n }\n return parseFloat((yield this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n default:\n break;\n }\n return _super.perform.call(this, method, params);\n });\n }\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n getHistory(addressOrName, startBlock, endBlock) {\n return __awaiter(this, void 0, void 0, function* () {\n const params = {\n action: \"txlist\",\n address: (yield this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0 : startBlock),\n endblock: ((endBlock == null) ? 99999999 : endBlock),\n sort: \"asc\"\n };\n const result = yield this.fetch(\"account\", params);\n return result.map((tx) => {\n [\"contractAddress\", \"to\"].forEach(function (key) {\n if (tx[key] == \"\") {\n delete tx[key];\n }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) {\n item.timestamp = parseInt(tx.timeStamp);\n }\n return item;\n });\n });\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\n//# sourceMappingURL=etherscan-provider.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 { Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction now() { return (new Date()).getTime(); }\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks) {\n let result = null;\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n // Null! We do not know our network; bail.\n if (network == null) {\n return null;\n }\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n }\n else {\n result = network;\n }\n }\n return result;\n}\nfunction median(values, maxDelta) {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n return (a + b) / 2;\n}\nfunction serialize(value) {\n if (value === null) {\n return \"null\";\n }\n else if (typeof (value) === \"number\" || typeof (value) === \"boolean\") {\n return JSON.stringify(value);\n }\n else if (typeof (value) === \"string\") {\n return value;\n }\n else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n }\n else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n }\n else if (typeof (value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof (v) === \"function\") {\n v = \"[function]\";\n }\n else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n throw new Error(\"unknown value type: \" + typeof (value));\n}\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n;\nfunction stall(duration) {\n let cancel = null;\n let timer = null;\n let promise = (new Promise((resolve) => {\n cancel = function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n };\n timer = setTimeout(cancel, duration);\n }));\n const wait = (func) => {\n promise = promise.then(func);\n return promise;\n };\n function getPromise() {\n return promise;\n }\n return { cancel, getPromise, wait };\n}\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n;\nfunction exposeDebugConfig(config, now) {\n const result = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) {\n result.start = config.start;\n }\n if (now) {\n result.duration = (now - config.start);\n }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n }\n else {\n result.result = config.result || null;\n }\n }\n return result;\n}\nfunction normalizedTally(normalize, quorum) {\n return function (configs) {\n // Count the votes for each result\n const tally = {};\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) {\n tally[value] = { count: 0, result: c.result };\n }\n tally[value].count++;\n });\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n // No quroum\n return undefined;\n };\n}\nfunction getProcessFunc(provider, method, params) {\n let normalize = serialize;\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function (configs) {\n const values = configs.map((c) => c.result);\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) {\n return undefined;\n }\n blockNumber = Math.ceil(blockNumber);\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) {\n blockNumber++;\n }\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n return provider._highestBlockNumber;\n };\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function (configs) {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n };\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function (configs) {\n return median(configs.map((c) => c.result));\n };\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function (tx) {\n if (tx == null) {\n return null;\n }\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n };\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n }\n else {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n return serialize(block);\n };\n }\n break;\n default:\n throw new Error(\"unknown method: \" + method);\n }\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n}\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nfunction waitForSync(config, blockNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = (config.provider);\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function () {\n // We are synced\n if (provider.blockNumber >= blockNumber) {\n return resolve(provider);\n }\n // We're done; just quit\n if (config.cancelled) {\n return resolve(null);\n }\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n });\n}\nfunction getRunner(config, currentBlockNumber, method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n let provider = config.provider;\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if (provider.getEtherPrice) {\n return provider.getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\" : \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getLogs(filter);\n }\n }\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n });\n}\nexport class FallbackProvider extends BaseProvider {\n constructor(providers, quorum) {\n logger.checkNew(new.target, FallbackProvider);\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n const providerConfigs = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n const config = shallowCopy(configOrProvider);\n if (config.priority == null) {\n config.priority = 1;\n }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n }\n if (config.weight == null) {\n config.weight = 1;\n }\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${index}].weight`, weight);\n }\n return Object.freeze(config);\n });\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n if (quorum == null) {\n quorum = total / 2;\n }\n else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n // Are all providers' networks are known\n let networkOrReady = checkNetworks(providerConfigs.map((c) => (c.provider).network));\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n super(networkOrReady);\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n this._highestBlockNumber = -1;\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const networks = yield Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n });\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results = yield Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof (result) === \"string\") {\n return result;\n }\n }\n // They were all an error; pick the first error\n throw results[0];\n }\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n yield this.getBlockNumber();\n }\n const processFunc = getProcessFunc(this, method, params);\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n const currentBlockNumber = this._highestBlockNumber;\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n const rid = nextRid++;\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n }, (error) => {\n config.done = true;\n config.error = error;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n inflightWeight += config.weight;\n }\n // Wait for anything meaningful to finish or stall out\n const waiting = [];\n configs.forEach((c) => {\n if (c.done || !c.runner) {\n return;\n }\n waiting.push(c.runner);\n if (c.staller) {\n waiting.push(c.staller.getPromise());\n }\n });\n if (waiting.length) {\n yield Promise.race(waiting);\n }\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) {\n yield stall(100).getPromise();\n }\n first = false;\n }\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) {\n return accum;\n }\n const code = (c.error).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) {\n accum[code] = { error: c.error, weight: 0 };\n }\n accum[code].weight += c.weight;\n }\n return accum;\n }, ({}));\n Object.keys(errors).forEach((errorCode) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) {\n return;\n }\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n const e = (tally.error);\n const props = {};\n ForwardProperties.forEach((name) => {\n if (e[name] == null) {\n return;\n }\n props[name] = e[name];\n });\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) {\n break;\n }\n }\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n });\n }\n}\n//# sourceMappingURL=fallback-provider.js.map","\"use strict\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class Formatter {\n constructor() {\n logger.checkNew(new.target, Formatter);\n this.formats = this.getDefaultFormats();\n }\n getDefaultFormats() {\n const formats = ({});\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n const strictData = (v) => { return this.data(v, true); };\n formats.transaction = {\n hash: hash,\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n confirmations: Formatter.allowNull(number, null),\n from: address,\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n creates: Formatter.allowNull(address, null),\n raw: Formatter.allowNull(data),\n };\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n formats.block = {\n hash: hash,\n parentHash: hash,\n number: number,\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n miner: address,\n extraData: data,\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n removed: Formatter.allowNull(this.boolean.bind(this)),\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n topics: Formatter.arrayOf(hash),\n transactionHash: hash,\n logIndex: number,\n };\n return formats;\n }\n accessList(accessList) {\n return accessListify(accessList || []);\n }\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number) {\n if (number === \"0x\") {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n type(number) {\n if (number === \"0x\" || number == null) {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n // Strict! Used on input.\n bigNumber(value) {\n return BigNumber.from(value);\n }\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value) {\n if (typeof (value) === \"boolean\") {\n return value;\n }\n if (typeof (value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") {\n return true;\n }\n if (value === \"false\") {\n return false;\n }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n hex(value, strict) {\n if (typeof (value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n data(value, strict) {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n // Requires an address\n // Strict! Used on input.\n address(value) {\n return getAddress(value);\n }\n callAddress(value) {\n if (!isHexString(value, 32)) {\n return null;\n }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null : address;\n }\n contractAddress(value) {\n return getContractAddress(value);\n }\n // Strict! Used on input.\n blockTag(blockTag) {\n if (blockTag == null) {\n return \"latest\";\n }\n if (blockTag === \"earliest\") {\n return \"0x0\";\n }\n if (blockTag === \"latest\" || blockTag === \"pending\") {\n return blockTag;\n }\n if (typeof (blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n throw new Error(\"invalid blockTag\");\n }\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value, strict) {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value) {\n if (value == null) {\n return null;\n }\n const v = BigNumber.from(value);\n try {\n return v.toNumber();\n }\n catch (error) { }\n return null;\n }\n uint256(value) {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n _block(value, format) {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty : value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null : BigNumber.from(difficulty));\n return result;\n }\n block(value) {\n return this._block(value, this.formats.block);\n }\n blockWithTransactions(value) {\n return this._block(value, this.formats.blockWithTransactions);\n }\n // Strict! Used on input.\n transactionRequest(value) {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n transactionResponse(transaction) {\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) {\n transaction.accessList = [];\n }\n const result = Formatter.check(this.formats.transaction, transaction);\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n result.chainId = chainId;\n }\n else {\n let chainId = transaction.networkId;\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n if (typeof (chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) {\n chainId = 0;\n }\n chainId = parseInt(chainId);\n }\n if (typeof (chainId) !== \"number\") {\n chainId = 0;\n }\n result.chainId = chainId;\n }\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n return result;\n }\n transaction(value) {\n return parseTransaction(value);\n }\n receiptLog(value) {\n return Formatter.check(this.formats.receiptLog, value);\n }\n receipt(value) {\n const result = Formatter.check(this.formats.receipt, value);\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n }\n else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n }\n else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n if (result.status != null) {\n result.byzantium = true;\n }\n return result;\n }\n topics(value) {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n }\n else if (value != null) {\n return this.hash(value, true);\n }\n return null;\n }\n filter(value) {\n return Formatter.check(this.formats.filter, value);\n }\n filterLog(value) {\n return Formatter.check(this.formats.filterLog, value);\n }\n static check(format, object) {\n const result = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) {\n result[key] = value;\n }\n }\n catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n // if value is null-ish, nullValue is returned\n static allowNull(format, nullValue) {\n return (function (value) {\n if (value == null) {\n return nullValue;\n }\n return format(value);\n });\n }\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format, replaceValue) {\n return (function (value) {\n if (!value) {\n return replaceValue;\n }\n return format(value);\n });\n }\n // Requires an Array satisfying check\n static arrayOf(format) {\n return (function (array) {\n if (!Array.isArray(array)) {\n throw new Error(\"not an array\");\n }\n const result = [];\n array.forEach(function (value) {\n result.push(format(value));\n });\n return result;\n });\n }\n}\nexport function isCommunityResourcable(value) {\n return (value && typeof (value.isCommunityResource) === \"function\");\n}\nexport function isCommunityResource(value) {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) {\n return;\n }\n throttleMessage = true;\n console.log(\"========= NOTICE =========\");\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n//# sourceMappingURL=formatter.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nconst defaultProjectId = \"84842078b09946638c03157f83405213\";\nexport class InfuraWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\nexport class InfuraProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n const apiKeyObj = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n if (apiKey == null) {\n return apiKeyObj;\n }\n if (typeof (apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n }\n else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof (apiKey.projectId) === \"string\"), \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof (apiKey.projectSecret) === \"string\"), \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n }\n else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n apiKeyObj.apiKey = apiKeyObj.projectId;\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"ropsten\":\n host = \"ropsten.infura.io\";\n break;\n case \"rinkeby\":\n host = \"rinkeby.infura.io\";\n break;\n case \"kovan\":\n host = \"kovan.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-kovan\":\n host = \"optimism-kovan.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-rinkeby\":\n host = \"arbitrum-rinkeby.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n const connection = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt, url) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\n//# sourceMappingURL=infura-provider.js.map","\"use strict\";\nconst IpcProvider = null;\nexport { IpcProvider };\n//# sourceMappingURL=ipc-provider.js.map","import { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// Experimental\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n const inflightRequest = { request, resolve: null, reject: null };\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n this._pendingBatch.push(inflightRequest);\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n }\n else {\n inflightRequest.resolve(payload.result);\n }\n });\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n }, 10);\n }\n return promise;\n }\n}\n//# sourceMappingURL=json-rpc-batch-provider.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 { Signer } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\nconst errorGas = [\"call\", \"estimateGas\"];\nfunction checkError(method, error, params) {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n if (e && e.message.match(\"reverted\") && isHexString(e.data)) {\n return e.data;\n }\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n const transaction = params.transaction || params.signedTransaction;\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"nonce too low\"\n if (message.match(/nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nfunction timer(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\nfunction getResult(payload) {\n if (payload.error) {\n // @TODO: not any\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n return payload.result;\n}\nfunction getLowerCase(value) {\n if (value) {\n return value.toLowerCase();\n }\n return value;\n}\nconst _constructorGuard = {};\nexport class JsonRpcSigner extends Signer {\n constructor(constructorGuard, provider, addressOrIndex) {\n logger.checkNew(new.target, JsonRpcSigner);\n super();\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n defineReadOnly(this, \"provider\", provider);\n if (addressOrIndex == null) {\n addressOrIndex = 0;\n }\n if (typeof (addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n }\n else if (typeof (addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n }\n else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n connect(provider) {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n connectUnchecked() {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n getAddress() {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index]);\n });\n }\n sendUncheckedTransaction(transaction) {\n transaction = shallowCopy(transaction);\n const fromAddress = this.getAddress().then((address) => {\n if (address) {\n address = address.toLowerCase();\n }\n return address;\n });\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then((to) => __awaiter(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n }\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n }\n else {\n tx.from = sender;\n }\n const hexTx = this.provider.constructor.hexlifyTransaction(tx, { from: true });\n return this.provider.send(\"eth_sendTransaction\", [hexTx]).then((hash) => {\n return hash;\n }, (error) => {\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n signTransaction(transaction) {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n // This cannot be mined any earlier than any recent block\n const blockNumber = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n // Send the transaction\n const hash = yield this.sendUncheckedTransaction(transaction);\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return yield poll(() => __awaiter(this, void 0, void 0, function* () {\n const tx = yield this.provider.getTransaction(hash);\n if (tx === null) {\n return undefined;\n }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }), { oncePoll: this.provider });\n }\n catch (error) {\n error.transactionHash = hash;\n throw error;\n }\n });\n }\n signMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n return yield this.provider.send(\"personal_sign\", [hexlify(data), address.toLowerCase()]);\n });\n }\n _legacySignMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return yield this.provider.send(\"eth_sign\", [address.toLowerCase(), hexlify(data)]);\n });\n }\n _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, function* () {\n // Populate any ENS names (in-place)\n const populated = yield _TypedDataEncoder.resolveNames(domain, types, value, (name) => {\n return this.provider.resolveName(name);\n });\n const address = yield this.getAddress();\n return yield this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n });\n }\n unlock(password) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = this.provider;\n const address = yield this.getAddress();\n return provider.send(\"personal_unlockAccount\", [address.toLowerCase(), password, null]);\n });\n }\n}\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction) {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n};\nexport class JsonRpcProvider extends BaseProvider {\n constructor(url, network) {\n logger.checkNew(new.target, JsonRpcProvider);\n let networkOrReady = network;\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n super(networkOrReady);\n // Default URL\n if (!url) {\n url = getStatic(this.constructor, \"defaultUrl\")();\n }\n if (typeof (url) === \"string\") {\n defineReadOnly(this, \"connection\", Object.freeze({\n url: url\n }));\n }\n else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n this._nextId = 42;\n }\n get _cache() {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = {};\n }\n return this._eventLoopCache;\n }\n static defaultUrl() {\n return \"http:/\\/localhost:8545\";\n }\n detectNetwork() {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n _uncachedDetectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n yield timer(0);\n let chainId = null;\n try {\n chainId = yield this.send(\"eth_chainId\", []);\n }\n catch (error) {\n try {\n chainId = yield this.send(\"net_version\", []);\n }\n catch (error) { }\n }\n if (chainId != null) {\n const getNetwork = getStatic(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n }\n catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n });\n }\n getSigner(addressOrIndex) {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n getUncheckedSigner(addressOrIndex) {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n listAccounts() {\n return this.send(\"eth_accounts\", []).then((accounts) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([\"eth_chainId\", \"eth_blockNumber\"].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n return result;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n throw error;\n });\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n return result;\n }\n prepareRequest(method, params) {\n switch (method) {\n case \"getBlockNumber\":\n return [\"eth_blockNumber\", []];\n case \"getGasPrice\":\n return [\"eth_gasPrice\", []];\n case \"getBalance\":\n return [\"eth_getBalance\", [getLowerCase(params.address), params.blockTag]];\n case \"getTransactionCount\":\n return [\"eth_getTransactionCount\", [getLowerCase(params.address), params.blockTag]];\n case \"getCode\":\n return [\"eth_getCode\", [getLowerCase(params.address), params.blockTag]];\n case \"getStorageAt\":\n return [\"eth_getStorageAt\", [getLowerCase(params.address), params.position, params.blockTag]];\n case \"sendTransaction\":\n return [\"eth_sendRawTransaction\", [params.signedTransaction]];\n case \"getBlock\":\n if (params.blockTag) {\n return [\"eth_getBlockByNumber\", [params.blockTag, !!params.includeTransactions]];\n }\n else if (params.blockHash) {\n return [\"eth_getBlockByHash\", [params.blockHash, !!params.includeTransactions]];\n }\n return null;\n case \"getTransaction\":\n return [\"eth_getTransactionByHash\", [params.transactionHash]];\n case \"getTransactionReceipt\":\n return [\"eth_getTransactionReceipt\", [params.transactionHash]];\n case \"call\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_call\", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]];\n }\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_estimateGas\", [hexlifyTransaction(params.transaction, { from: true })]];\n }\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [\"eth_getLogs\", [params.filter]];\n default:\n break;\n }\n return null;\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-a559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = yield this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n const args = this.prepareRequest(method, params);\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return yield this.send(args[0], args[1]);\n }\n catch (error) {\n return checkError(method, error, params);\n }\n });\n }\n _startEvent(event) {\n if (event.tag === \"pending\") {\n this._startPending();\n }\n super._startEvent(event);\n }\n _startPending() {\n if (this._pendingFilter != null) {\n return;\n }\n const self = this;\n const pendingFilter = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n pendingFilter.then(function (filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [filterId]).then(function (hashes) {\n if (self._pendingFilter != pendingFilter) {\n return null;\n }\n let seq = Promise.resolve();\n hashes.forEach(function (hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function () {\n return self.getTransaction(hash).then(function (tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n return seq.then(function () {\n return timer(1000);\n });\n }).then(function () {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [filterId]);\n return;\n }\n setTimeout(function () { poll(); }, 0);\n return null;\n }).catch((error) => { });\n }\n poll();\n return filterId;\n }).catch((error) => { });\n }\n _stopEvent(event) {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction, allowExtra) {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) {\n allowed[key] = true;\n }\n }\n }\n checkProperties(transaction, allowed);\n const result = {};\n // Some nodes (INFURA ropsten; INFURA mainnet is fine) do not like leading zeros.\n [\"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n const value = hexValue(transaction[key]);\n if (key === \"gasLimit\") {\n key = \"gas\";\n }\n result[key] = value;\n });\n [\"from\", \"to\", \"data\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n result[key] = hexlify(transaction[key]);\n });\n if (transaction.accessList) {\n result[\"accessList\"] = accessListify(transaction.accessList);\n }\n return result;\n }\n}\n//# sourceMappingURL=json-rpc-provider.js.map","/* istanbul ignore file */\n\"use strict\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n static getUrl(network, apiKey) {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n//# sourceMappingURL=nodesmith-provider.js.map","\"use strict\";\nimport { getStatic } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n// These are load-balancer-based application IDs\nconst defaultApplicationIds = {\n homestead: \"6004bcd10040261633ade990\",\n ropsten: \"6004bd4d0040261633ade991\",\n rinkeby: \"6004bda20040261633ade994\",\n goerli: \"6004bd860040261633ade992\",\n};\nexport class PocketProvider extends UrlJsonRpcProvider {\n constructor(network, apiKey) {\n // We need a bit of creativity in the constructor because\n // Pocket uses different default API keys based on the network\n if (apiKey == null) {\n const n = getStatic(new.target, \"getNetwork\")(network);\n if (n) {\n const applicationId = defaultApplicationIds[n.name];\n if (applicationId) {\n apiKey = {\n applicationId: applicationId,\n loadBalancer: true\n };\n }\n }\n // If there was any issue above, we don't know this network\n if (apiKey == null) {\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n }\n super(network, apiKey);\n }\n static getApiKey(apiKey) {\n // Most API Providers allow null to get the default configuration, but\n // Pocket requires the network to decide the default provider, so we\n // rely on hijacking the constructor to add a sensible default for us\n if (apiKey == null) {\n logger.throwArgumentError(\"PocketProvider.getApiKey does not support null apiKey\", \"apiKey\", apiKey);\n }\n const apiKeyObj = {\n applicationId: null,\n loadBalancer: false,\n applicationSecretKey: null\n };\n // Parse applicationId and applicationSecretKey\n if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n }\n else if (apiKey.applicationSecretKey != null) {\n logger.assertArgument((typeof (apiKey.applicationId) === \"string\"), \"applicationSecretKey requires an applicationId\", \"applicationId\", apiKey.applicationId);\n logger.assertArgument((typeof (apiKey.applicationSecretKey) === \"string\"), \"invalid applicationSecretKey\", \"applicationSecretKey\", \"[REDACTED]\");\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n apiKeyObj.loadBalancer = !!apiKey.loadBalancer;\n }\n else if (apiKey.applicationId) {\n logger.assertArgument((typeof (apiKey.applicationId) === \"string\"), \"apiKey.applicationId must be a string\", \"apiKey.applicationId\", apiKey.applicationId);\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.loadBalancer = !!apiKey.loadBalancer;\n }\n else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n let url = null;\n if (apiKey.loadBalancer) {\n url = `https:/\\/${host}/v1/lb/${apiKey.applicationId}`;\n }\n else {\n url = `https:/\\/${host}/v1/${apiKey.applicationId}`;\n }\n const connection = { url };\n // Initialize empty headers\n connection.headers = {};\n // Apply application secret key\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.applicationId === defaultApplicationIds[this.network.name]);\n }\n}\n//# sourceMappingURL=pocket-provider.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 { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n detectNetwork() {\n const _super = Object.create(null, {\n detectNetwork: { get: () => super.detectNetwork }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let network = this.network;\n if (network == null) {\n network = yield _super.detectNetwork.call(this);\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n this.emit(\"network\", network, null);\n }\n }\n return network;\n });\n }\n}\nexport class UrlJsonRpcProvider extends StaticJsonRpcProvider {\n constructor(network, apiKey) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n // Normalize the Network and API Key\n network = getStatic(new.target, \"getNetwork\")(network);\n apiKey = getStatic(new.target, \"getApiKey\")(apiKey);\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n super(connection, network);\n if (typeof (apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n }\n else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n _startPending() {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n isCommunityResource() {\n return false;\n }\n getSigner(address) {\n return logger.throwError(\"API provider does not support signing\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"getSigner\" });\n }\n listAccounts() {\n return Promise.resolve([]);\n }\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey) {\n return apiKey;\n }\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network, apiKey) {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n//# sourceMappingURL=url-json-rpc-provider.js.map","\"use strict\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nlet _nextId = 1;\nfunction buildWeb3LegacyFetcher(provider, sendFunc) {\n const fetcher = \"Web3LegacyFetcher\";\n return function (method, params) {\n const request = {\n method: method,\n params: params,\n id: (_nextId++),\n jsonrpc: \"2.0\"\n };\n return new Promise((resolve, reject) => {\n this.emit(\"debug\", {\n action: \"request\",\n fetcher,\n request: deepCopy(request),\n provider: this\n });\n sendFunc(request, (error, response) => {\n if (error) {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n error,\n request,\n provider: this\n });\n return reject(error);\n }\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n request,\n response,\n provider: this\n });\n if (response.error) {\n const error = new Error(response.error.message);\n error.code = response.error.code;\n error.data = response.error.data;\n return reject(error);\n }\n resolve(response.result);\n });\n });\n };\n}\nfunction buildEip1193Fetcher(provider) {\n return function (method, params) {\n if (params == null) {\n params = [];\n }\n const request = { method, params };\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n return provider.request(request).then((response) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n response,\n provider: this\n });\n return response;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n error,\n provider: this\n });\n throw error;\n });\n };\n}\nexport class Web3Provider extends JsonRpcProvider {\n constructor(provider, network) {\n logger.checkNew(new.target, Web3Provider);\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n let path = null;\n let jsonRpcFetchFunc = null;\n let subprovider = null;\n if (typeof (provider) === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n }\n else {\n path = provider.host || provider.path || \"\";\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n subprovider = provider;\n if (provider.request) {\n if (path === \"\") {\n path = \"eip-1193:\";\n }\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n }\n else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n }\n else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n }\n else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n if (!path) {\n path = \"unknown:\";\n }\n }\n super(path, network);\n defineReadOnly(this, \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(this, \"provider\", subprovider);\n }\n send(method, params) {\n return this.jsonRpcFetchFunc(method, params);\n }\n}\n//# sourceMappingURL=web3-provider.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 { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\nlet NextId = 1;\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\nexport class WebSocketProvider extends JsonRpcProvider {\n constructor(url, network) {\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n super(url, network);\n this._pollingInterval = -1;\n this._wsReady = false;\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n defineReadOnly(this, \"_requests\", {});\n defineReadOnly(this, \"_subs\", {});\n defineReadOnly(this, \"_subIds\", {});\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n // Stall sending requests until the socket is open...\n this._websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this._websocket.send(this._requests[id].payload);\n });\n };\n this._websocket.onmessage = (messageEvent) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n if (result.result !== undefined) {\n request.callback(null, result.result);\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n }\n else {\n let error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n }\n else {\n error = new Error(\"unknown error\");\n }\n request.callback(error, undefined);\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n }\n }\n else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result);\n }\n }\n else {\n console.warn(\"this should not happen\");\n }\n };\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) {\n fauxPoll.unref();\n }\n }\n detectNetwork() {\n return this._detectNetwork;\n }\n get pollingInterval() {\n return 0;\n }\n resetEventsBlock(blockNumber) {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n set pollingInterval(value) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n return null;\n });\n }\n set polling(value) {\n if (!value) {\n return;\n }\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n send(method, params) {\n const rid = NextId++;\n return new Promise((resolve, reject) => {\n function callback(error, result) {\n if (error) {\n return reject(error);\n }\n return resolve(result);\n }\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n this._requests[String(rid)] = { callback, payload };\n if (this._wsReady) {\n this._websocket.send(payload);\n }\n });\n }\n static defaultUrl() {\n return \"ws:/\\/localhost:8546\";\n }\n _subscribe(tag, param, processFunc) {\n return __awaiter(this, void 0, void 0, function* () {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = yield subIdPromise;\n this._subs[subId] = { tag, processFunc };\n });\n }\n _startEvent(event) {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [\"newHeads\"], (result) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n case \"pending\":\n this._subscribe(\"pending\", [\"newPendingTransactions\"], (result) => {\n this.emit(\"pending\", result);\n });\n break;\n case \"filter\":\n this._subscribe(event.tag, [\"logs\", this._getFilter(event.filter)], (result) => {\n if (result.removed == null) {\n result.removed = false;\n }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n case \"tx\": {\n const emitReceipt = (event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) {\n return;\n }\n this.emit(hash, receipt);\n });\n };\n // In case it is already mined\n emitReceipt(event);\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [\"newHeads\"], (result) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n _stopEvent(event) {\n let tag = event.tag;\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n }\n else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n const subId = this._subIds[tag];\n if (!subId) {\n return;\n }\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) {\n return;\n }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [subId]);\n });\n }\n destroy() {\n return __awaiter(this, void 0, void 0, function* () {\n // Wait until we have connected before trying to disconnect\n if (this._websocket.readyState === WebSocket.CONNECTING) {\n yield (new Promise((resolve) => {\n this._websocket.onopen = function () {\n resolve(true);\n };\n this._websocket.onerror = function () {\n resolve(false);\n };\n }));\n }\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this._websocket.close(1000);\n });\n }\n}\n//# sourceMappingURL=websocket-provider.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nlet WS = null;\ntry {\n WS = WebSocket;\n if (WS == null) {\n throw new Error(\"inject please\");\n }\n}\ncatch (error) {\n const logger = new Logger(version);\n WS = function () {\n logger.throwError(\"WebSockets not supported in this environment\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new WebSocket()\"\n });\n };\n}\n//export default WS;\n//module.exports = WS;\nexport { WS as WebSocket };\n//# sourceMappingURL=ws.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Debugging line for testing browser lib in node\n//const window = { crypto: { getRandomValues: () => { } } };\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis\nfunction getGlobal() {\n if (typeof self !== 'undefined') {\n return self;\n }\n if (typeof window !== 'undefined') {\n return window;\n }\n if (typeof global !== 'undefined') {\n return global;\n }\n throw new Error('unable to locate global object');\n}\n;\nconst anyGlobal = getGlobal();\nlet crypto = anyGlobal.crypto || anyGlobal.msCrypto;\nif (!crypto || !crypto.getRandomValues) {\n logger.warn(\"WARNING: Missing strong random number source\");\n crypto = {\n getRandomValues: function (buffer) {\n return logger.throwError(\"no secure random source avaialble\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"crypto.getRandomValues\"\n });\n }\n };\n}\nexport function randomBytes(length) {\n if (length <= 0 || length > 1024 || (length % 1) || length != length) {\n logger.throwArgumentError(\"invalid length\", \"length\", length);\n }\n const result = new Uint8Array(length);\n crypto.getRandomValues(result);\n return arrayify(result);\n}\n;\n//# sourceMappingURL=random.js.map","\"use strict\";\nexport function shuffled(array) {\n array = array.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n return array;\n}\n//# sourceMappingURL=shuffle.js.map","\"use strict\";\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { SupportedAlgorithm } from \"./types\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function ripemd160(data) {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha256(data) {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha512(data) {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\nexport function computeHmac(algorithm, key, data) {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n return \"0x\" + hash.hmac(hash[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n//# sourceMappingURL=sha2.js.map","export var SupportedAlgorithm;\n(function (SupportedAlgorithm) {\n SupportedAlgorithm[\"sha256\"] = \"sha256\";\n SupportedAlgorithm[\"sha512\"] = \"sha512\";\n})(SupportedAlgorithm || (SupportedAlgorithm = {}));\n;\n//# sourceMappingURL=types.js.map","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 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 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","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","'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 curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\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) {\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 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 _ec from \"elliptic\";\nvar EC = _ec.ec;\nexport { EC };\n//# sourceMappingURL=elliptic.js.map","\"use strict\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\nexport function formatBytes32String(text) {\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n // Check we have room for null-termination\n if (bytes.length > 31) {\n throw new Error(\"bytes32 string must be less than 32 bytes\");\n }\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([bytes, HashZero]).slice(0, 32));\n}\nexport function parseBytes32String(bytes) {\n const data = arrayify(bytes);\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) {\n throw new Error(\"invalid bytes32 - not 32 bytes long\");\n }\n if (data[31] !== 0) {\n throw new Error(\"invalid bytes32 string - no null terminator\");\n }\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) {\n length--;\n }\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n//# sourceMappingURL=bytes32.js.map","\"use strict\";\nimport { toUtf8CodePoints, _toUtf8String, UnicodeNormalizationForm } from \"./utf8\";\nfunction bytes2(data) {\n if ((data.length % 4) !== 0) {\n throw new Error(\"bad data\");\n }\n let result = [];\n for (let i = 0; i < data.length; i += 4) {\n result.push(parseInt(data.substring(i, i + 4), 16));\n }\n return result;\n}\nfunction createTable(data, func) {\n if (!func) {\n func = function (value) { return [parseInt(value, 16)]; };\n }\n let lo = 0;\n let result = {};\n data.split(\",\").forEach((pair) => {\n let comps = pair.split(\":\");\n lo += parseInt(comps[0], 16);\n result[lo] = func(comps[1]);\n });\n return result;\n}\nfunction createRangeTable(data) {\n let hi = 0;\n return data.split(\",\").map((v) => {\n let comps = v.split(\"-\");\n if (comps.length === 1) {\n comps[1] = \"0\";\n }\n else if (comps[1] === \"\") {\n comps[1] = \"1\";\n }\n let lo = hi + parseInt(comps[0], 16);\n hi = parseInt(comps[1], 16);\n return { l: lo, h: hi };\n });\n}\nfunction matchMap(value, ranges) {\n let lo = 0;\n for (let i = 0; i < ranges.length; i++) {\n let range = ranges[i];\n lo += range.l;\n if (value >= lo && value <= lo + range.h && ((value - lo) % (range.d || 1)) === 0) {\n if (range.e && range.e.indexOf(value - lo) !== -1) {\n continue;\n }\n return range;\n }\n }\n return null;\n}\nconst Table_A_1_ranges = createRangeTable(\"221,13-1b,5f-,40-10,51-f,11-3,3-3,2-2,2-4,8,2,15,2d,28-8,88,48,27-,3-5,11-20,27-,8,28,3-5,12,18,b-a,1c-4,6-16,2-d,2-2,2,1b-4,17-9,8f-,10,f,1f-2,1c-34,33-14e,4,36-,13-,6-2,1a-f,4,9-,3-,17,8,2-2,5-,2,8-,3-,4-8,2-3,3,6-,16-6,2-,7-3,3-,17,8,3,3,3-,2,6-3,3-,4-a,5,2-6,10-b,4,8,2,4,17,8,3,6-,b,4,4-,2-e,2-4,b-10,4,9-,3-,17,8,3-,5-,9-2,3-,4-7,3-3,3,4-3,c-10,3,7-2,4,5-2,3,2,3-2,3-2,4-2,9,4-3,6-2,4,5-8,2-e,d-d,4,9,4,18,b,6-3,8,4,5-6,3-8,3-3,b-11,3,9,4,18,b,6-3,8,4,5-6,3-6,2,3-3,b-11,3,9,4,18,11-3,7-,4,5-8,2-7,3-3,b-11,3,13-2,19,a,2-,8-2,2-3,7,2,9-11,4-b,3b-3,1e-24,3,2-,3,2-,2-5,5,8,4,2,2-,3,e,4-,6,2,7-,b-,3-21,49,23-5,1c-3,9,25,10-,2-2f,23,6,3,8-2,5-5,1b-45,27-9,2a-,2-3,5b-4,45-4,53-5,8,40,2,5-,8,2,5-,28,2,5-,20,2,5-,8,2,5-,8,8,18,20,2,5-,8,28,14-5,1d-22,56-b,277-8,1e-2,52-e,e,8-a,18-8,15-b,e,4,3-b,5e-2,b-15,10,b-5,59-7,2b-555,9d-3,5b-5,17-,7-,27-,7-,9,2,2,2,20-,36,10,f-,7,14-,4,a,54-3,2-6,6-5,9-,1c-10,13-1d,1c-14,3c-,10-6,32-b,240-30,28-18,c-14,a0,115-,3,66-,b-76,5,5-,1d,24,2,5-2,2,8-,35-2,19,f-10,1d-3,311-37f,1b,5a-b,d7-19,d-3,41,57-,68-4,29-3,5f,29-37,2e-2,25-c,2c-2,4e-3,30,78-3,64-,20,19b7-49,51a7-59,48e-2,38-738,2ba5-5b,222f-,3c-94,8-b,6-4,1b,6,2,3,3,6d-20,16e-f,41-,37-7,2e-2,11-f,5-b,18-,b,14,5-3,6,88-,2,bf-2,7-,7-,7-,4-2,8,8-9,8-2ff,20,5-b,1c-b4,27-,27-cbb1,f7-9,28-2,b5-221,56,48,3-,2-,3-,5,d,2,5,3,42,5-,9,8,1d,5,6,2-2,8,153-3,123-3,33-27fd,a6da-5128,21f-5df,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3-fffd,3,2-1d,61-ff7d\");\n// @TODO: Make this relative...\nconst Table_B_1_flags = \"ad,34f,1806,180b,180c,180d,200b,200c,200d,2060,feff\".split(\",\").map((v) => parseInt(v, 16));\nconst Table_B_2_ranges = [\n { h: 25, s: 32, l: 65 },\n { h: 30, s: 32, e: [23], l: 127 },\n { h: 54, s: 1, e: [48], l: 64, d: 2 },\n { h: 14, s: 1, l: 57, d: 2 },\n { h: 44, s: 1, l: 17, d: 2 },\n { h: 10, s: 1, e: [2, 6, 8], l: 61, d: 2 },\n { h: 16, s: 1, l: 68, d: 2 },\n { h: 84, s: 1, e: [18, 24, 66], l: 19, d: 2 },\n { h: 26, s: 32, e: [17], l: 435 },\n { h: 22, s: 1, l: 71, d: 2 },\n { h: 15, s: 80, l: 40 },\n { h: 31, s: 32, l: 16 },\n { h: 32, s: 1, l: 80, d: 2 },\n { h: 52, s: 1, l: 42, d: 2 },\n { h: 12, s: 1, l: 55, d: 2 },\n { h: 40, s: 1, e: [38], l: 15, d: 2 },\n { h: 14, s: 1, l: 48, d: 2 },\n { h: 37, s: 48, l: 49 },\n { h: 148, s: 1, l: 6351, d: 2 },\n { h: 88, s: 1, l: 160, d: 2 },\n { h: 15, s: 16, l: 704 },\n { h: 25, s: 26, l: 854 },\n { h: 25, s: 32, l: 55915 },\n { h: 37, s: 40, l: 1247 },\n { h: 25, s: -119711, l: 53248 },\n { h: 25, s: -119763, l: 52 },\n { h: 25, s: -119815, l: 52 },\n { h: 25, s: -119867, e: [1, 4, 5, 7, 8, 11, 12, 17], l: 52 },\n { h: 25, s: -119919, l: 52 },\n { h: 24, s: -119971, e: [2, 7, 8, 17], l: 52 },\n { h: 24, s: -120023, e: [2, 7, 13, 15, 16, 17], l: 52 },\n { h: 25, s: -120075, l: 52 },\n { h: 25, s: -120127, l: 52 },\n { h: 25, s: -120179, l: 52 },\n { h: 25, s: -120231, l: 52 },\n { h: 25, s: -120283, l: 52 },\n { h: 25, s: -120335, l: 52 },\n { h: 24, s: -119543, e: [17], l: 56 },\n { h: 24, s: -119601, e: [17], l: 58 },\n { h: 24, s: -119659, e: [17], l: 58 },\n { h: 24, s: -119717, e: [17], l: 58 },\n { h: 24, s: -119775, e: [17], l: 58 }\n];\nconst Table_B_2_lut_abs = createTable(\"b5:3bc,c3:ff,7:73,2:253,5:254,3:256,1:257,5:259,1:25b,3:260,1:263,2:269,1:268,5:26f,1:272,2:275,7:280,3:283,5:288,3:28a,1:28b,5:292,3f:195,1:1bf,29:19e,125:3b9,8b:3b2,1:3b8,1:3c5,3:3c6,1:3c0,1a:3ba,1:3c1,1:3c3,2:3b8,1:3b5,1bc9:3b9,1c:1f76,1:1f77,f:1f7a,1:1f7b,d:1f78,1:1f79,1:1f7c,1:1f7d,107:63,5:25b,4:68,1:68,1:68,3:69,1:69,1:6c,3:6e,4:70,1:71,1:72,1:72,1:72,7:7a,2:3c9,2:7a,2:6b,1:e5,1:62,1:63,3:65,1:66,2:6d,b:3b3,1:3c0,6:64,1b574:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3,20:3b8,1a:3c3\");\nconst Table_B_2_lut_rel = createTable(\"179:1,2:1,2:1,5:1,2:1,a:4f,a:1,8:1,2:1,2:1,3:1,5:1,3:1,4:1,2:1,3:1,4:1,8:2,1:1,2:2,1:1,2:2,27:2,195:26,2:25,1:25,1:25,2:40,2:3f,1:3f,33:1,11:-6,1:-9,1ac7:-3a,6d:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,b:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,c:-8,2:-8,2:-8,2:-8,9:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,1:-8,49:-8,1:-8,1:-4a,1:-4a,d:-56,1:-56,1:-56,1:-56,d:-8,1:-8,f:-8,1:-8,3:-7\");\nconst Table_B_2_complex = createTable(\"df:00730073,51:00690307,19:02BC006E,a7:006A030C,18a:002003B9,16:03B903080301,20:03C503080301,1d7:05650582,190f:00680331,1:00740308,1:0077030A,1:0079030A,1:006102BE,b6:03C50313,2:03C503130300,2:03C503130301,2:03C503130342,2a:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F0003B9,1:1F0103B9,1:1F0203B9,1:1F0303B9,1:1F0403B9,1:1F0503B9,1:1F0603B9,1:1F0703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F2003B9,1:1F2103B9,1:1F2203B9,1:1F2303B9,1:1F2403B9,1:1F2503B9,1:1F2603B9,1:1F2703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,1:1F6003B9,1:1F6103B9,1:1F6203B9,1:1F6303B9,1:1F6403B9,1:1F6503B9,1:1F6603B9,1:1F6703B9,3:1F7003B9,1:03B103B9,1:03AC03B9,2:03B10342,1:03B1034203B9,5:03B103B9,6:1F7403B9,1:03B703B9,1:03AE03B9,2:03B70342,1:03B7034203B9,5:03B703B9,6:03B903080300,1:03B903080301,3:03B90342,1:03B903080342,b:03C503080300,1:03C503080301,1:03C10313,2:03C50342,1:03C503080342,b:1F7C03B9,1:03C903B9,1:03CE03B9,2:03C90342,1:03C9034203B9,5:03C903B9,ac:00720073,5b:00B00063,6:00B00066,d:006E006F,a:0073006D,1:00740065006C,1:0074006D,124f:006800700061,2:00610075,2:006F0076,b:00700061,1:006E0061,1:03BC0061,1:006D0061,1:006B0061,1:006B0062,1:006D0062,1:00670062,3:00700066,1:006E0066,1:03BC0066,4:0068007A,1:006B0068007A,1:006D0068007A,1:00670068007A,1:00740068007A,15:00700061,1:006B00700061,1:006D00700061,1:006700700061,8:00700076,1:006E0076,1:03BC0076,1:006D0076,1:006B0076,1:006D0076,1:00700077,1:006E0077,1:03BC0077,1:006D0077,1:006B0077,1:006D0077,1:006B03C9,1:006D03C9,2:00620071,3:00632215006B0067,1:0063006F002E,1:00640062,1:00670079,2:00680070,2:006B006B,1:006B006D,9:00700068,2:00700070006D,1:00700072,2:00730076,1:00770062,c723:00660066,1:00660069,1:0066006C,1:006600660069,1:00660066006C,1:00730074,1:00730074,d:05740576,1:05740565,1:0574056B,1:057E0576,1:0574056D\", bytes2);\nconst Table_C_ranges = createRangeTable(\"80-20,2a0-,39c,32,f71,18e,7f2-f,19-7,30-4,7-5,f81-b,5,a800-20ff,4d1-1f,110,fa-6,d174-7,2e84-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,ffff-,2,1f-5f,ff7f-20001\");\nfunction flatten(values) {\n return values.reduce((accum, value) => {\n value.forEach((value) => { accum.push(value); });\n return accum;\n }, []);\n}\nexport function _nameprepTableA1(codepoint) {\n return !!matchMap(codepoint, Table_A_1_ranges);\n}\nexport function _nameprepTableB2(codepoint) {\n let range = matchMap(codepoint, Table_B_2_ranges);\n if (range) {\n return [codepoint + range.s];\n }\n let codes = Table_B_2_lut_abs[codepoint];\n if (codes) {\n return codes;\n }\n let shift = Table_B_2_lut_rel[codepoint];\n if (shift) {\n return [codepoint + shift[0]];\n }\n let complex = Table_B_2_complex[codepoint];\n if (complex) {\n return complex;\n }\n return null;\n}\nexport function _nameprepTableC(codepoint) {\n return !!matchMap(codepoint, Table_C_ranges);\n}\nexport function nameprep(value) {\n // This allows platforms with incomplete normalize to bypass\n // it for very basic names which the built-in toLowerCase\n // will certainly handle correctly\n if (value.match(/^[a-z0-9-]*$/i) && value.length <= 59) {\n return value.toLowerCase();\n }\n // Get the code points (keeping the current normalization)\n let codes = toUtf8CodePoints(value);\n codes = flatten(codes.map((code) => {\n // Substitute Table B.1 (Maps to Nothing)\n if (Table_B_1_flags.indexOf(code) >= 0) {\n return [];\n }\n if (code >= 0xfe00 && code <= 0xfe0f) {\n return [];\n }\n // Substitute Table B.2 (Case Folding)\n let codesTableB2 = _nameprepTableB2(code);\n if (codesTableB2) {\n return codesTableB2;\n }\n // No Substitution\n return [code];\n }));\n // Normalize using form KC\n codes = toUtf8CodePoints(_toUtf8String(codes), UnicodeNormalizationForm.NFKC);\n // Prohibit Tables C.1.2, C.2.2, C.3, C.4, C.5, C.6, C.7, C.8, C.9\n codes.forEach((code) => {\n if (_nameprepTableC(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_PROHIBITED\");\n }\n });\n // Prohibit Unassigned Code Points (Table A.1)\n codes.forEach((code) => {\n if (_nameprepTableA1(code)) {\n throw new Error(\"STRINGPREP_CONTAINS_UNASSIGNED\");\n }\n });\n // IDNA extras\n let name = _toUtf8String(codes);\n // IDNA: 4.2.3.1\n if (name.substring(0, 1) === \"-\" || name.substring(2, 4) === \"--\" || name.substring(name.length - 1) === \"-\") {\n throw new Error(\"invalid hyphen\");\n }\n // IDNA: 4.2.4\n if (name.length > 63) {\n throw new Error(\"too long\");\n }\n return name;\n}\n//# sourceMappingURL=idna.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\";\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 { arrayify } from \"@ethersproject/bytes\";\nexport function getUrl(href, options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options == null) {\n options = {};\n }\n const request = {\n method: (options.method || \"GET\"),\n headers: (options.headers || {}),\n body: (options.body || undefined),\n };\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\"; // no-cors, cors, *same-origin\n request.cache = \"no-cache\"; // *default, no-cache, reload, force-cache, only-if-cached\n request.credentials = \"same-origin\"; // include, *same-origin, omit\n request.redirect = \"follow\"; // manual, *follow, error\n request.referrer = \"client\"; // no-referrer, *client\n }\n ;\n const response = yield fetch(href, request);\n const body = yield response.arrayBuffer();\n const headers = {};\n if (response.headers.forEach) {\n response.headers.forEach((value, key) => {\n headers[key.toLowerCase()] = value;\n });\n }\n else {\n ((response.headers).keys)().forEach((key) => {\n headers[key.toLowerCase()] = response.headers.get(key);\n });\n }\n return {\n headers: headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body)),\n };\n });\n}\n//# sourceMappingURL=geturl.js.map","\"use strict\";\nimport { Wordlist } from \"./wordlist\";\nconst words = \"AbandonAbilityAbleAboutAboveAbsentAbsorbAbstractAbsurdAbuseAccessAccidentAccountAccuseAchieveAcidAcousticAcquireAcrossActActionActorActressActualAdaptAddAddictAddressAdjustAdmitAdultAdvanceAdviceAerobicAffairAffordAfraidAgainAgeAgentAgreeAheadAimAirAirportAisleAlarmAlbumAlcoholAlertAlienAllAlleyAllowAlmostAloneAlphaAlreadyAlsoAlterAlwaysAmateurAmazingAmongAmountAmusedAnalystAnchorAncientAngerAngleAngryAnimalAnkleAnnounceAnnualAnotherAnswerAntennaAntiqueAnxietyAnyApartApologyAppearAppleApproveAprilArchArcticAreaArenaArgueArmArmedArmorArmyAroundArrangeArrestArriveArrowArtArtefactArtistArtworkAskAspectAssaultAssetAssistAssumeAsthmaAthleteAtomAttackAttendAttitudeAttractAuctionAuditAugustAuntAuthorAutoAutumnAverageAvocadoAvoidAwakeAwareAwayAwesomeAwfulAwkwardAxisBabyBachelorBaconBadgeBagBalanceBalconyBallBambooBananaBannerBarBarelyBargainBarrelBaseBasicBasketBattleBeachBeanBeautyBecauseBecomeBeefBeforeBeginBehaveBehindBelieveBelowBeltBenchBenefitBestBetrayBetterBetweenBeyondBicycleBidBikeBindBiologyBirdBirthBitterBlackBladeBlameBlanketBlastBleakBlessBlindBloodBlossomBlouseBlueBlurBlushBoardBoatBodyBoilBombBoneBonusBookBoostBorderBoringBorrowBossBottomBounceBoxBoyBracketBrainBrandBrassBraveBreadBreezeBrickBridgeBriefBrightBringBriskBroccoliBrokenBronzeBroomBrotherBrownBrushBubbleBuddyBudgetBuffaloBuildBulbBulkBulletBundleBunkerBurdenBurgerBurstBusBusinessBusyButterBuyerBuzzCabbageCabinCableCactusCageCakeCallCalmCameraCampCanCanalCancelCandyCannonCanoeCanvasCanyonCapableCapitalCaptainCarCarbonCardCargoCarpetCarryCartCaseCashCasinoCastleCasualCatCatalogCatchCategoryCattleCaughtCauseCautionCaveCeilingCeleryCementCensusCenturyCerealCertainChairChalkChampionChangeChaosChapterChargeChaseChatCheapCheckCheeseChefCherryChestChickenChiefChildChimneyChoiceChooseChronicChuckleChunkChurnCigarCinnamonCircleCitizenCityCivilClaimClapClarifyClawClayCleanClerkCleverClickClientCliffClimbClinicClipClockClogCloseClothCloudClownClubClumpClusterClutchCoachCoastCoconutCodeCoffeeCoilCoinCollectColorColumnCombineComeComfortComicCommonCompanyConcertConductConfirmCongressConnectConsiderControlConvinceCookCoolCopperCopyCoralCoreCornCorrectCostCottonCouchCountryCoupleCourseCousinCoverCoyoteCrackCradleCraftCramCraneCrashCraterCrawlCrazyCreamCreditCreekCrewCricketCrimeCrispCriticCropCrossCrouchCrowdCrucialCruelCruiseCrumbleCrunchCrushCryCrystalCubeCultureCupCupboardCuriousCurrentCurtainCurveCushionCustomCuteCycleDadDamageDampDanceDangerDaringDashDaughterDawnDayDealDebateDebrisDecadeDecemberDecideDeclineDecorateDecreaseDeerDefenseDefineDefyDegreeDelayDeliverDemandDemiseDenialDentistDenyDepartDependDepositDepthDeputyDeriveDescribeDesertDesignDeskDespairDestroyDetailDetectDevelopDeviceDevoteDiagramDialDiamondDiaryDiceDieselDietDifferDigitalDignityDilemmaDinnerDinosaurDirectDirtDisagreeDiscoverDiseaseDishDismissDisorderDisplayDistanceDivertDivideDivorceDizzyDoctorDocumentDogDollDolphinDomainDonateDonkeyDonorDoorDoseDoubleDoveDraftDragonDramaDrasticDrawDreamDressDriftDrillDrinkDripDriveDropDrumDryDuckDumbDuneDuringDustDutchDutyDwarfDynamicEagerEagleEarlyEarnEarthEasilyEastEasyEchoEcologyEconomyEdgeEditEducateEffortEggEightEitherElbowElderElectricElegantElementElephantElevatorEliteElseEmbarkEmbodyEmbraceEmergeEmotionEmployEmpowerEmptyEnableEnactEndEndlessEndorseEnemyEnergyEnforceEngageEngineEnhanceEnjoyEnlistEnoughEnrichEnrollEnsureEnterEntireEntryEnvelopeEpisodeEqualEquipEraEraseErodeErosionErrorEruptEscapeEssayEssenceEstateEternalEthicsEvidenceEvilEvokeEvolveExactExampleExcessExchangeExciteExcludeExcuseExecuteExerciseExhaustExhibitExileExistExitExoticExpandExpectExpireExplainExposeExpressExtendExtraEyeEyebrowFabricFaceFacultyFadeFaintFaithFallFalseFameFamilyFamousFanFancyFantasyFarmFashionFatFatalFatherFatigueFaultFavoriteFeatureFebruaryFederalFeeFeedFeelFemaleFenceFestivalFetchFeverFewFiberFictionFieldFigureFileFilmFilterFinalFindFineFingerFinishFireFirmFirstFiscalFishFitFitnessFixFlagFlameFlashFlatFlavorFleeFlightFlipFloatFlockFloorFlowerFluidFlushFlyFoamFocusFogFoilFoldFollowFoodFootForceForestForgetForkFortuneForumForwardFossilFosterFoundFoxFragileFrameFrequentFreshFriendFringeFrogFrontFrostFrownFrozenFruitFuelFunFunnyFurnaceFuryFutureGadgetGainGalaxyGalleryGameGapGarageGarbageGardenGarlicGarmentGasGaspGateGatherGaugeGazeGeneralGeniusGenreGentleGenuineGestureGhostGiantGiftGiggleGingerGiraffeGirlGiveGladGlanceGlareGlassGlideGlimpseGlobeGloomGloryGloveGlowGlueGoatGoddessGoldGoodGooseGorillaGospelGossipGovernGownGrabGraceGrainGrantGrapeGrassGravityGreatGreenGridGriefGritGroceryGroupGrowGruntGuardGuessGuideGuiltGuitarGunGymHabitHairHalfHammerHamsterHandHappyHarborHardHarshHarvestHatHaveHawkHazardHeadHealthHeartHeavyHedgehogHeightHelloHelmetHelpHenHeroHiddenHighHillHintHipHireHistoryHobbyHockeyHoldHoleHolidayHollowHomeHoneyHoodHopeHornHorrorHorseHospitalHostHotelHourHoverHubHugeHumanHumbleHumorHundredHungryHuntHurdleHurryHurtHusbandHybridIceIconIdeaIdentifyIdleIgnoreIllIllegalIllnessImageImitateImmenseImmuneImpactImposeImproveImpulseInchIncludeIncomeIncreaseIndexIndicateIndoorIndustryInfantInflictInformInhaleInheritInitialInjectInjuryInmateInnerInnocentInputInquiryInsaneInsectInsideInspireInstallIntactInterestIntoInvestInviteInvolveIronIslandIsolateIssueItemIvoryJacketJaguarJarJazzJealousJeansJellyJewelJobJoinJokeJourneyJoyJudgeJuiceJumpJungleJuniorJunkJustKangarooKeenKeepKetchupKeyKickKidKidneyKindKingdomKissKitKitchenKiteKittenKiwiKneeKnifeKnockKnowLabLabelLaborLadderLadyLakeLampLanguageLaptopLargeLaterLatinLaughLaundryLavaLawLawnLawsuitLayerLazyLeaderLeafLearnLeaveLectureLeftLegLegalLegendLeisureLemonLendLengthLensLeopardLessonLetterLevelLiarLibertyLibraryLicenseLifeLiftLightLikeLimbLimitLinkLionLiquidListLittleLiveLizardLoadLoanLobsterLocalLockLogicLonelyLongLoopLotteryLoudLoungeLoveLoyalLuckyLuggageLumberLunarLunchLuxuryLyricsMachineMadMagicMagnetMaidMailMainMajorMakeMammalManManageMandateMangoMansionManualMapleMarbleMarchMarginMarineMarketMarriageMaskMassMasterMatchMaterialMathMatrixMatterMaximumMazeMeadowMeanMeasureMeatMechanicMedalMediaMelodyMeltMemberMemoryMentionMenuMercyMergeMeritMerryMeshMessageMetalMethodMiddleMidnightMilkMillionMimicMindMinimumMinorMinuteMiracleMirrorMiseryMissMistakeMixMixedMixtureMobileModelModifyMomMomentMonitorMonkeyMonsterMonthMoonMoralMoreMorningMosquitoMotherMotionMotorMountainMouseMoveMovieMuchMuffinMuleMultiplyMuscleMuseumMushroomMusicMustMutualMyselfMysteryMythNaiveNameNapkinNarrowNastyNationNatureNearNeckNeedNegativeNeglectNeitherNephewNerveNestNetNetworkNeutralNeverNewsNextNiceNightNobleNoiseNomineeNoodleNormalNorthNoseNotableNoteNothingNoticeNovelNowNuclearNumberNurseNutOakObeyObjectObligeObscureObserveObtainObviousOccurOceanOctoberOdorOffOfferOfficeOftenOilOkayOldOliveOlympicOmitOnceOneOnionOnlineOnlyOpenOperaOpinionOpposeOptionOrangeOrbitOrchardOrderOrdinaryOrganOrientOriginalOrphanOstrichOtherOutdoorOuterOutputOutsideOvalOvenOverOwnOwnerOxygenOysterOzonePactPaddlePagePairPalacePalmPandaPanelPanicPantherPaperParadeParentParkParrotPartyPassPatchPathPatientPatrolPatternPausePavePaymentPeacePeanutPearPeasantPelicanPenPenaltyPencilPeoplePepperPerfectPermitPersonPetPhonePhotoPhrasePhysicalPianoPicnicPicturePiecePigPigeonPillPilotPinkPioneerPipePistolPitchPizzaPlacePlanetPlasticPlatePlayPleasePledgePluckPlugPlungePoemPoetPointPolarPolePolicePondPonyPoolPopularPortionPositionPossiblePostPotatoPotteryPovertyPowderPowerPracticePraisePredictPreferPreparePresentPrettyPreventPricePridePrimaryPrintPriorityPrisonPrivatePrizeProblemProcessProduceProfitProgramProjectPromoteProofPropertyProsperProtectProudProvidePublicPuddingPullPulpPulsePumpkinPunchPupilPuppyPurchasePurityPurposePursePushPutPuzzlePyramidQualityQuantumQuarterQuestionQuickQuitQuizQuoteRabbitRaccoonRaceRackRadarRadioRailRainRaiseRallyRampRanchRandomRangeRapidRareRateRatherRavenRawRazorReadyRealReasonRebelRebuildRecallReceiveRecipeRecordRecycleReduceReflectReformRefuseRegionRegretRegularRejectRelaxReleaseReliefRelyRemainRememberRemindRemoveRenderRenewRentReopenRepairRepeatReplaceReportRequireRescueResembleResistResourceResponseResultRetireRetreatReturnReunionRevealReviewRewardRhythmRibRibbonRiceRichRideRidgeRifleRightRigidRingRiotRippleRiskRitualRivalRiverRoadRoastRobotRobustRocketRomanceRoofRookieRoomRoseRotateRoughRoundRouteRoyalRubberRudeRugRuleRunRunwayRuralSadSaddleSadnessSafeSailSaladSalmonSalonSaltSaluteSameSampleSandSatisfySatoshiSauceSausageSaveSayScaleScanScareScatterSceneSchemeSchoolScienceScissorsScorpionScoutScrapScreenScriptScrubSeaSearchSeasonSeatSecondSecretSectionSecuritySeedSeekSegmentSelectSellSeminarSeniorSenseSentenceSeriesServiceSessionSettleSetupSevenShadowShaftShallowShareShedShellSheriffShieldShiftShineShipShiverShockShoeShootShopShortShoulderShoveShrimpShrugShuffleShySiblingSickSideSiegeSightSignSilentSilkSillySilverSimilarSimpleSinceSingSirenSisterSituateSixSizeSkateSketchSkiSkillSkinSkirtSkullSlabSlamSleepSlenderSliceSlideSlightSlimSloganSlotSlowSlushSmallSmartSmileSmokeSmoothSnackSnakeSnapSniffSnowSoapSoccerSocialSockSodaSoftSolarSoldierSolidSolutionSolveSomeoneSongSoonSorrySortSoulSoundSoupSourceSouthSpaceSpareSpatialSpawnSpeakSpecialSpeedSpellSpendSphereSpiceSpiderSpikeSpinSpiritSplitSpoilSponsorSpoonSportSpotSpraySpreadSpringSpySquareSqueezeSquirrelStableStadiumStaffStageStairsStampStandStartStateStaySteakSteelStemStepStereoStickStillStingStockStomachStoneStoolStoryStoveStrategyStreetStrikeStrongStruggleStudentStuffStumbleStyleSubjectSubmitSubwaySuccessSuchSuddenSufferSugarSuggestSuitSummerSunSunnySunsetSuperSupplySupremeSureSurfaceSurgeSurpriseSurroundSurveySuspectSustainSwallowSwampSwapSwarmSwearSweetSwiftSwimSwingSwitchSwordSymbolSymptomSyrupSystemTableTackleTagTailTalentTalkTankTapeTargetTaskTasteTattooTaxiTeachTeamTellTenTenantTennisTentTermTestTextThankThatThemeThenTheoryThereTheyThingThisThoughtThreeThriveThrowThumbThunderTicketTideTigerTiltTimberTimeTinyTipTiredTissueTitleToastTobaccoTodayToddlerToeTogetherToiletTokenTomatoTomorrowToneTongueTonightToolToothTopTopicToppleTorchTornadoTortoiseTossTotalTouristTowardTowerTownToyTrackTradeTrafficTragicTrainTransferTrapTrashTravelTrayTreatTreeTrendTrialTribeTrickTriggerTrimTripTrophyTroubleTruckTrueTrulyTrumpetTrustTruthTryTubeTuitionTumbleTunaTunnelTurkeyTurnTurtleTwelveTwentyTwiceTwinTwistTwoTypeTypicalUglyUmbrellaUnableUnawareUncleUncoverUnderUndoUnfairUnfoldUnhappyUniformUniqueUnitUniverseUnknownUnlockUntilUnusualUnveilUpdateUpgradeUpholdUponUpperUpsetUrbanUrgeUsageUseUsedUsefulUselessUsualUtilityVacantVacuumVagueValidValleyValveVanVanishVaporVariousVastVaultVehicleVelvetVendorVentureVenueVerbVerifyVersionVeryVesselVeteranViableVibrantViciousVictoryVideoViewVillageVintageViolinVirtualVirusVisaVisitVisualVitalVividVocalVoiceVoidVolcanoVolumeVoteVoyageWageWagonWaitWalkWallWalnutWantWarfareWarmWarriorWashWaspWasteWaterWaveWayWealthWeaponWearWeaselWeatherWebWeddingWeekendWeirdWelcomeWestWetWhaleWhatWheatWheelWhenWhereWhipWhisperWideWidthWifeWildWillWinWindowWineWingWinkWinnerWinterWireWisdomWiseWishWitnessWolfWomanWonderWoodWoolWordWorkWorldWorryWorthWrapWreckWrestleWristWriteWrongYardYearYellowYouYoungYouthZebraZeroZoneZoo\";\nlet wordlist = null;\nfunction loadWords(lang) {\n if (wordlist != null) {\n return;\n }\n wordlist = words.replace(/([A-Z])/g, \" $1\").toLowerCase().substring(1).split(\" \");\n // Verify the computed list matches the official list\n /* istanbul ignore if */\n if (Wordlist.check(lang) !== \"0x3c8acc1e7b08d8e76f9fda015ef48dc8c710a73cb7e0f77b2c18a9b5a7adde60\") {\n wordlist = null;\n throw new Error(\"BIP39 Wordlist for en (English) FAILED\");\n }\n}\nclass LangEn extends Wordlist {\n constructor() {\n super(\"en\");\n }\n getWord(index) {\n loadWords(this);\n return wordlist[index];\n }\n getWordIndex(word) {\n loadWords(this);\n return wordlist.indexOf(word);\n }\n}\nconst langEn = new LangEn();\nWordlist.register(langEn);\nexport { langEn };\n//# sourceMappingURL=lang-en.js.map","\"use strict\";\n// This gets overridden by rollup\nconst exportWordlist = false;\nimport { id } from \"@ethersproject/hash\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nexport const logger = new Logger(version);\nexport class Wordlist {\n constructor(locale) {\n logger.checkAbstract(new.target, Wordlist);\n defineReadOnly(this, \"locale\", locale);\n }\n // Subclasses may override this\n split(mnemonic) {\n return mnemonic.toLowerCase().split(/ +/g);\n }\n // Subclasses may override this\n join(words) {\n return words.join(\" \");\n }\n static check(wordlist) {\n const words = [];\n for (let i = 0; i < 2048; i++) {\n const word = wordlist.getWord(i);\n /* istanbul ignore if */\n if (i !== wordlist.getWordIndex(word)) {\n return \"0x\";\n }\n words.push(word);\n }\n return id(words.join(\"\\n\") + \"\\n\");\n }\n static register(lang, name) {\n if (!name) {\n name = lang.locale;\n }\n /* istanbul ignore if */\n if (exportWordlist) {\n try {\n const anyGlobal = window;\n if (anyGlobal._ethers && anyGlobal._ethers.wordlists) {\n if (!anyGlobal._ethers.wordlists[name]) {\n defineReadOnly(anyGlobal._ethers.wordlists, name, lang);\n }\n }\n }\n catch (error) { }\n }\n }\n}\n//# sourceMappingURL=wordlist.js.map","\"use strict\";\nimport { langEn as en } from \"./lang-en\";\nexport const wordlists = {\n en: en\n};\n//# sourceMappingURL=wordlists.js.map","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","\"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","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.org\";\nexport function getWalletRegistryUrl() {\n return API_URL + \"/data/wallets.json\";\n}\nexport function getDappRegistryUrl() {\n return API_URL + \"/data/dapps.json\";\n}\nexport function getAppLogoUrl(id) {\n return API_URL + \"/logo/sm/\" + id + \".jpeg\";\n}\nexport function formatMobileRegistryEntry(entry, platform = \"mobile\") {\n return {\n name: entry.name || \"\",\n shortName: entry.metadata.shortName || \"\",\n color: entry.metadata.colors.primary || \"\",\n logo: entry.id ? getAppLogoUrl(entry.id) : \"\",\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","export const ERROR_SESSION_CONNECTED = \"Session currently connected\";\nexport const ERROR_SESSION_DISCONNECTED = \"Session currently disconnected\";\nexport const ERROR_SESSION_REJECTED = \"Session Rejected\";\nexport const ERROR_MISSING_JSON_RPC = \"Missing JSON RPC response\";\nexport const ERROR_MISSING_RESULT = `JSON-RPC success response must include \"result\" field`;\nexport const ERROR_MISSING_ERROR = `JSON-RPC error response must include \"error\" field`;\nexport const ERROR_MISSING_METHOD = `JSON RPC request must have valid \"method\" value`;\nexport const ERROR_MISSING_ID = `JSON RPC request must have valid \"id\" value`;\nexport const ERROR_MISSING_REQUIRED = \"Missing one of the required parameters: bridge / uri / session\";\nexport const ERROR_INVALID_RESPONSE = \"JSON RPC response format is invalid\";\nexport const ERROR_INVALID_URI = \"URI format is invalid\";\nexport const ERROR_QRCODE_MODAL_NOT_PROVIDED = \"QRCode Modal not provided\";\nexport const ERROR_QRCODE_MODAL_USER_CLOSED = \"User close QRCode Modal\";\n//# sourceMappingURL=errors.js.map","import { isJsonRpcRequest, isJsonRpcResponseSuccess, isJsonRpcResponseError, isInternalEvent, isReservedEvent, } from \"@walletconnect/utils\";\nclass EventManager {\n constructor() {\n this._eventEmitters = [];\n }\n subscribe(eventEmitter) {\n this._eventEmitters.push(eventEmitter);\n }\n unsubscribe(event) {\n this._eventEmitters = this._eventEmitters.filter(x => x.event !== event);\n }\n trigger(payload) {\n let eventEmitters = [];\n let event;\n if (isJsonRpcRequest(payload)) {\n event = payload.method;\n }\n else if (isJsonRpcResponseSuccess(payload) || isJsonRpcResponseError(payload)) {\n event = `response:${payload.id}`;\n }\n else if (isInternalEvent(payload)) {\n event = payload.event;\n }\n else {\n event = \"\";\n }\n if (event) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === event);\n }\n if ((!eventEmitters || !eventEmitters.length) &&\n !isReservedEvent(event) &&\n !isInternalEvent(event)) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === \"call_request\");\n }\n eventEmitters.forEach((eventEmitter) => {\n if (isJsonRpcResponseError(payload)) {\n const error = new Error(payload.error.message);\n eventEmitter.callback(error, null);\n }\n else {\n eventEmitter.callback(null, payload);\n }\n });\n }\n}\nexport default EventManager;\n//# sourceMappingURL=events.js.map","import { isWalletConnectSession, getLocal, setLocal, removeLocal } from \"@walletconnect/utils\";\nclass SessionStorage {\n constructor(storageId = \"walletconnect\") {\n this.storageId = storageId;\n }\n getSession() {\n let session = null;\n const json = getLocal(this.storageId);\n if (json && isWalletConnectSession(json)) {\n session = json;\n }\n return session;\n }\n setSession(session) {\n setLocal(this.storageId, session);\n return session;\n }\n removeSession() {\n removeLocal(this.storageId);\n }\n}\nexport default SessionStorage;\n//# sourceMappingURL=storage.js.map","import * as queryStringUtils from \"query-string\";\nexport function getQueryString(url) {\n const pathEnd = url.indexOf(\"?\") !== -1 ? url.indexOf(\"?\") : undefined;\n const queryString = typeof pathEnd !== \"undefined\" ? url.substr(pathEnd) : \"\";\n return queryString;\n}\nexport function appendToQueryString(queryString, newQueryParams) {\n let queryParams = parseQueryString(queryString);\n queryParams = Object.assign(Object.assign({}, queryParams), newQueryParams);\n queryString = formatQueryString(queryParams);\n return queryString;\n}\nexport function parseQueryString(queryString) {\n return queryStringUtils.parse(queryString);\n}\nexport function formatQueryString(queryParams) {\n return queryStringUtils.stringify(queryParams);\n}\n//# sourceMappingURL=url.js.map","import { browserAesDecrypt, browserAesEncrypt } from \"../lib/browser\";\nexport function aesCbcEncrypt(iv, key, data) {\n return browserAesEncrypt(iv, key, data);\n}\nexport function aesCbcDecrypt(iv, key, data) {\n return browserAesDecrypt(iv, key, data);\n}\n//# sourceMappingURL=aes.js.map","import { browserHmacSha256Sign, browserHmacSha512Sign } from \"../lib/browser\";\nimport { isConstantTime } from \"../helpers\";\nexport async function hmacSha256Sign(key, msg) {\n const result = await browserHmacSha256Sign(key, msg);\n return result;\n}\nexport async function hmacSha256Verify(key, msg, sig) {\n const expectedSig = await browserHmacSha256Sign(key, msg);\n const result = isConstantTime(expectedSig, sig);\n return result;\n}\nexport async function hmacSha512Sign(key, msg) {\n const result = await browserHmacSha512Sign(key, msg);\n return result;\n}\nexport async function hmacSha512Verify(key, msg, sig) {\n const expectedSig = await browserHmacSha512Sign(key, msg);\n const result = isConstantTime(expectedSig, sig);\n return result;\n}\n//# sourceMappingURL=hmac.js.map","import * as env from \"@walletconnect/environment\";\nexport function randomBytes(length) {\n const browserCrypto = env.getBrowerCrypto();\n return browserCrypto.getRandomValues(new Uint8Array(length));\n}\n//# sourceMappingURL=index.js.map","import { browserSha256, browserSha512 } from \"../lib/browser\";\nexport async function sha256(msg) {\n const result = await browserSha256(msg);\n return result;\n}\nexport async function sha512(msg) {\n const result = await browserSha512(msg);\n return result;\n}\nexport async function ripemd160(msg) {\n throw new Error(\"Not supported for Browser async methods, use sync instead!\");\n}\n//# sourceMappingURL=sha2.js.map","import { LENGTH_1, LENGTH_32, LENGTH_16, LENGTH_256 } from \"./length\";\nexport const AES_LENGTH = LENGTH_256;\nexport const HMAC_LENGTH = LENGTH_256;\nexport const AES_BROWSER_ALGO = \"AES-CBC\";\nexport const HMAC_BROWSER_ALGO = `SHA-${AES_LENGTH}`;\nexport const HMAC_BROWSER = \"HMAC\";\nexport const SHA256_BROWSER_ALGO = \"SHA-256\";\nexport const SHA512_BROWSER_ALGO = \"SHA-512\";\nexport const AES_NODE_ALGO = `aes-${AES_LENGTH}-cbc`;\nexport const HMAC_NODE_ALGO = `sha${HMAC_LENGTH}`;\nexport const SHA256_NODE_ALGO = \"sha256\";\nexport const SHA512_NODE_ALGO = \"sha512\";\nexport const RIPEMD160_NODE_ALGO = \"ripemd160\";\nexport const PREFIX_LENGTH = LENGTH_1;\nexport const KEY_LENGTH = LENGTH_32;\nexport const IV_LENGTH = LENGTH_16;\nexport const MAC_LENGTH = LENGTH_32;\n//# sourceMappingURL=default.js.map","export const HEX_ENC = \"hex\";\nexport const UTF8_ENC = \"utf8\";\n//# sourceMappingURL=encoding.js.map","export const ERROR_BAD_MAC = \"Bad MAC\";\n//# sourceMappingURL=error.js.map","export * from \"./default\";\nexport * from \"./encoding\";\nexport * from \"./error\";\nexport * from \"./length\";\nexport * from \"./operations\";\n//# sourceMappingURL=index.js.map","export const LENGTH_0 = 0;\nexport const LENGTH_1 = 1;\nexport const LENGTH_16 = 16;\nexport const LENGTH_32 = 32;\nexport const LENGTH_64 = 64;\nexport const LENGTH_128 = 128;\nexport const LENGTH_256 = 256;\nexport const LENGTH_512 = 512;\nexport const LENGTH_1024 = 1024;\n//# sourceMappingURL=length.js.map","export const ENCRYPT_OP = \"encrypt\";\nexport const DECRYPT_OP = \"decrypt\";\nexport const SIGN_OP = \"sign\";\nexport const VERIFY_OP = \"verify\";\n//# sourceMappingURL=operations.js.map","export * from \"@walletconnect/environment\";\n//# sourceMappingURL=env.js.map","export * from \"./env\";\nexport * from \"./pkcs7\";\nexport * from \"./types\";\nexport * from \"./validators\";\n//# sourceMappingURL=index.js.map","const PADDING = [\n [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16],\n [15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15],\n [14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14],\n [13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13],\n [12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12],\n [11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11],\n [10, 10, 10, 10, 10, 10, 10, 10, 10, 10],\n [9, 9, 9, 9, 9, 9, 9, 9, 9],\n [8, 8, 8, 8, 8, 8, 8, 8],\n [7, 7, 7, 7, 7, 7, 7],\n [6, 6, 6, 6, 6, 6],\n [5, 5, 5, 5, 5],\n [4, 4, 4, 4],\n [3, 3, 3],\n [2, 2],\n [1],\n];\nexport const pkcs7 = {\n pad(plaintext) {\n const padding = PADDING[plaintext.byteLength % 16 || 0];\n const result = new Uint8Array(plaintext.byteLength + padding.length);\n result.set(plaintext);\n result.set(padding, plaintext.byteLength);\n return result;\n },\n unpad(padded) {\n return padded.subarray(0, padded.byteLength - padded[padded.byteLength - 1]);\n },\n};\n//# sourceMappingURL=pkcs7.js.map","export function assert(condition, message) {\n if (!condition) {\n throw new Error(message || \"Assertion failed\");\n }\n}\nexport function isConstantTime(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n let res = 0;\n for (let i = 0; i < arr1.length; i++) {\n res |= arr1[i] ^ arr2[i];\n }\n return res === 0;\n}\n//# sourceMappingURL=validators.js.map","import * as env from \"@walletconnect/environment\";\nimport { ENCRYPT_OP, DECRYPT_OP, SIGN_OP, VERIFY_OP, AES_BROWSER_ALGO, AES_LENGTH, HMAC_BROWSER_ALGO, HMAC_BROWSER, HMAC_LENGTH, SHA256_BROWSER_ALGO, SHA512_BROWSER_ALGO, LENGTH_512, } from \"../constants\";\nexport function getAlgo(type) {\n return type === AES_BROWSER_ALGO\n ? { length: AES_LENGTH, name: AES_BROWSER_ALGO }\n : {\n hash: { name: HMAC_BROWSER_ALGO },\n name: HMAC_BROWSER,\n };\n}\nexport function getOps(type) {\n return type === AES_BROWSER_ALGO\n ? [ENCRYPT_OP, DECRYPT_OP]\n : [SIGN_OP, VERIFY_OP];\n}\nexport async function browserExportKey(cryptoKey, type = AES_BROWSER_ALGO) {\n const subtle = env.getSubtleCrypto();\n return new Uint8Array(await subtle.exportKey(\"raw\", cryptoKey));\n}\nexport async function browserImportKey(buffer, type = AES_BROWSER_ALGO) {\n return env.getSubtleCrypto().importKey(\"raw\", buffer, getAlgo(type), true, getOps(type));\n}\nexport async function browserAesEncrypt(iv, key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, AES_BROWSER_ALGO);\n const result = await subtle.encrypt({\n iv,\n name: AES_BROWSER_ALGO,\n }, cryptoKey, data);\n return new Uint8Array(result);\n}\nexport async function browserAesDecrypt(iv, key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, AES_BROWSER_ALGO);\n const result = await subtle.decrypt({\n iv,\n name: AES_BROWSER_ALGO,\n }, cryptoKey, data);\n return new Uint8Array(result);\n}\nexport async function browserHmacSha256Sign(key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, HMAC_BROWSER);\n const signature = await subtle.sign({\n length: HMAC_LENGTH,\n name: HMAC_BROWSER,\n }, cryptoKey, data);\n return new Uint8Array(signature);\n}\nexport async function browserHmacSha512Sign(key, data) {\n const subtle = env.getSubtleCrypto();\n const cryptoKey = await browserImportKey(key, HMAC_BROWSER);\n const signature = await subtle.sign({\n length: LENGTH_512,\n name: HMAC_BROWSER,\n }, cryptoKey, data);\n return new Uint8Array(signature);\n}\nexport async function browserSha256(data) {\n const subtle = env.getSubtleCrypto();\n const result = await subtle.digest({\n name: SHA256_BROWSER_ALGO,\n }, data);\n return new Uint8Array(result);\n}\nexport async function browserSha512(data) {\n const subtle = env.getSubtleCrypto();\n const result = await subtle.digest({\n name: SHA512_BROWSER_ALGO,\n }, data);\n return new Uint8Array(result);\n}\n//# sourceMappingURL=browser.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","import { isNode } from \"@walletconnect/environment\";\nexport const isNodeJs = isNode;\nexport * from \"@walletconnect/environment\";\n//# sourceMappingURL=env.js.map","import { EventEmitter } from \"events\";\nimport fetch from \"cross-fetch\";\nimport { safeJsonParse, safeJsonStringify } from \"@walletconnect/safe-json\";\nimport { formatJsonRpcError, isHttpUrl, parseConnectionError, } from \"@walletconnect/jsonrpc-utils\";\nconst DEFAULT_HTTP_HEADERS = {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n};\nconst DEFAULT_HTTP_METHOD = \"POST\";\nconst DEFAULT_FETCH_OPTS = {\n headers: DEFAULT_HTTP_HEADERS,\n method: DEFAULT_HTTP_METHOD,\n};\nexport class HttpConnection {\n constructor(url) {\n this.url = url;\n this.events = new EventEmitter();\n this.isAvailable = false;\n this.registering = false;\n if (!isHttpUrl(url)) {\n throw new Error(`Provided URL is not compatible with HTTP connection: ${url}`);\n }\n this.url = url;\n }\n get connected() {\n return this.isAvailable;\n }\n get connecting() {\n return this.registering;\n }\n on(event, listener) {\n this.events.on(event, listener);\n }\n once(event, listener) {\n this.events.once(event, listener);\n }\n off(event, listener) {\n this.events.off(event, listener);\n }\n removeListener(event, listener) {\n this.events.removeListener(event, listener);\n }\n async open(url = this.url) {\n await this.register(url);\n }\n async close() {\n if (!this.isAvailable) {\n throw new Error(\"Connection already closed\");\n }\n this.onClose();\n }\n async send(payload, context) {\n if (!this.isAvailable) {\n await this.register();\n }\n try {\n const body = safeJsonStringify(payload);\n const res = await fetch(this.url, Object.assign(Object.assign({}, DEFAULT_FETCH_OPTS), { body }));\n const data = await res.json();\n this.onPayload({ data });\n }\n catch (e) {\n this.onError(payload.id, e);\n }\n }\n async register(url = this.url) {\n if (!isHttpUrl(url)) {\n throw new Error(`Provided URL is not compatible with HTTP connection: ${url}`);\n }\n if (this.registering) {\n return new Promise((resolve, reject) => {\n this.events.once(\"register_error\", error => {\n reject(error);\n });\n this.events.once(\"open\", () => {\n if (typeof this.isAvailable === \"undefined\") {\n return reject(new Error(\"HTTP connection is missing or invalid\"));\n }\n resolve();\n });\n });\n }\n this.url = url;\n this.registering = true;\n try {\n const body = safeJsonStringify({ id: 1, jsonrpc: \"2.0\", method: \"test\", params: [] });\n await fetch(url, Object.assign(Object.assign({}, DEFAULT_FETCH_OPTS), { body }));\n this.onOpen();\n }\n catch (e) {\n const error = this.parseError(e);\n this.events.emit(\"register_error\", error);\n this.onClose();\n throw error;\n }\n }\n onOpen() {\n this.isAvailable = true;\n this.registering = false;\n this.events.emit(\"open\");\n }\n onClose() {\n this.isAvailable = false;\n this.registering = false;\n this.events.emit(\"close\");\n }\n onPayload(e) {\n if (typeof e.data === \"undefined\")\n return;\n const payload = typeof e.data === \"string\" ? safeJsonParse(e.data) : e.data;\n this.events.emit(\"payload\", payload);\n }\n onError(id, e) {\n const error = this.parseError(e);\n const message = error.message || error.toString();\n const payload = formatJsonRpcError(id, message);\n this.events.emit(\"payload\", payload);\n }\n parseError(e, url = this.url) {\n return parseConnectionError(e, url, \"HTTP\");\n }\n}\nexport default HttpConnection;\n//# sourceMappingURL=http.js.map","import { IEvents } from \"./misc\";\nexport class IJsonRpcConnection extends IEvents {\n constructor(opts) {\n super();\n }\n}\nexport class IBaseJsonRpcProvider extends IEvents {\n constructor() {\n super();\n }\n}\nexport class IJsonRpcProvider extends IBaseJsonRpcProvider {\n constructor(connection) {\n super();\n }\n}\n//# sourceMappingURL=provider.js.map","import * as encoding from \"@walletconnect/encoding\";\nimport * as jsonRpcUtils from \"@walletconnect/jsonrpc-utils\";\nimport { infuraNetworks } from \"./constants\";\nexport function sanitizeHex(hex) {\n return encoding.sanitizeHex(hex);\n}\nexport function addHexPrefix(hex) {\n return encoding.addHexPrefix(hex);\n}\nexport function removeHexPrefix(hex) {\n return encoding.removeHexPrefix(hex);\n}\nexport function removeHexLeadingZeros(hex) {\n return encoding.removeHexLeadingZeros(encoding.addHexPrefix(hex));\n}\nexport const payloadId = jsonRpcUtils.payloadId;\nexport function uuid() {\n const result = ((a, b) => {\n for (b = a = \"\"; a++ < 36; b += (a * 51) & 52 ? (a ^ 15 ? 8 ^ (Math.random() * (a ^ 20 ? 16 : 4)) : 4).toString(16) : \"-\") {\n }\n return b;\n })();\n return result;\n}\nexport function logDeprecationWarning() {\n console.warn(\"DEPRECATION WARNING: This WalletConnect client library will be deprecated in favor of @walletconnect/client. Please check docs.walletconnect.org to learn more about this migration!\");\n}\nexport function getInfuraRpcUrl(chainId, infuraId) {\n let rpcUrl;\n const network = infuraNetworks[chainId];\n if (network) {\n rpcUrl = `https://${network}.infura.io/v3/${infuraId}`;\n }\n return rpcUrl;\n}\nexport function getRpcUrl(chainId, rpc) {\n let rpcUrl;\n const infuraUrl = getInfuraRpcUrl(chainId, rpc.infuraId);\n if (rpc.custom && rpc.custom[chainId]) {\n rpcUrl = rpc.custom[chainId];\n }\n else if (infuraUrl) {\n rpcUrl = infuraUrl;\n }\n return rpcUrl;\n}\n//# sourceMappingURL=misc.js.map","export const reservedEvents = [\n \"session_request\",\n \"session_update\",\n \"exchange_key\",\n \"connect\",\n \"disconnect\",\n \"display_uri\",\n \"modal_closed\",\n \"transport_open\",\n \"transport_close\",\n \"transport_error\",\n];\nexport const signingMethods = [\n \"eth_sendTransaction\",\n \"eth_signTransaction\",\n \"eth_sign\",\n \"eth_signTypedData\",\n \"eth_signTypedData_v1\",\n \"eth_signTypedData_v2\",\n \"eth_signTypedData_v3\",\n \"eth_signTypedData_v4\",\n \"personal_sign\",\n \"wallet_addEthereumChain\",\n \"wallet_switchEthereumChain\",\n \"wallet_getPermissions\",\n \"wallet_requestPermissions\",\n \"wallet_registerOnboarding\",\n \"wallet_watchAsset\",\n \"wallet_scanQRCode\",\n];\nexport const stateMethods = [\"eth_accounts\", \"eth_chainId\", \"net_version\"];\nexport const infuraNetworks = {\n 1: \"mainnet\",\n 3: \"ropsten\",\n 4: \"rinkeby\",\n 5: \"goerli\",\n 42: \"kovan\",\n};\n//# sourceMappingURL=constants.js.map","import { INTERNAL_ERROR, SERVER_ERROR_CODE_RANGE, RESERVED_ERROR_CODES, STANDARD_ERROR_MAP, } 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[INTERNAL_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[INTERNAL_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[INTERNAL_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","import { getError, getErrorByCode, isReservedErrorCode } from \"./error\";\nimport { INTERNAL_ERROR, SERVER_ERROR } from \"./constants\";\nexport function payloadId() {\n const date = Date.now() * Math.pow(10, 3);\n const extra = Math.floor(Math.random() * Math.pow(10, 3));\n return date + extra;\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) {\n return {\n id,\n jsonrpc: \"2.0\",\n error: formatErrorMessage(error),\n };\n}\nexport function formatErrorMessage(error) {\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 (isReservedErrorCode(error.code)) {\n error = getErrorByCode(error.code);\n }\n return error;\n}\n//# sourceMappingURL=format.js.map","export function isValidRoute(route) {\n if (route.includes(\"*\")) {\n return isValidWildcardRoute(route);\n }\n if (/\\W/g.test(route)) {\n return false;\n }\n return true;\n}\nexport function isValidDefaultRoute(route) {\n return route === \"*\";\n}\nexport function isValidWildcardRoute(route) {\n if (isValidDefaultRoute(route)) {\n return true;\n }\n if (!route.includes(\"*\")) {\n return false;\n }\n if (route.split(\"*\").length !== 2) {\n return false;\n }\n if (route.split(\"*\").filter(x => x.trim() === \"\").length !== 1) {\n return false;\n }\n return true;\n}\nexport function isValidLeadingWildcardRoute(route) {\n return !isValidDefaultRoute(route) && isValidWildcardRoute(route) && !route.split(\"*\")[0].trim();\n}\nexport function isValidTrailingWildcardRoute(route) {\n return !isValidDefaultRoute(route) && isValidWildcardRoute(route) && !route.split(\"*\")[1].trim();\n}\n//# sourceMappingURL=routing.js.map","export * from \"@walletconnect/jsonrpc-types\";\n//# sourceMappingURL=types.js.map","import * as encoding from \"@walletconnect/encoding\";\nimport { signingMethods, reservedEvents } from \"./constants\";\nexport function isEmptyString(value) {\n return value === \"\" || (typeof value === \"string\" && value.trim() === \"\");\n}\nexport function isEmptyArray(array) {\n return !(array && array.length);\n}\nexport function isBuffer(val) {\n return encoding.isBuffer(val);\n}\nexport function isTypedArray(val) {\n return encoding.isTypedArray(val);\n}\nexport function isArrayBuffer(val) {\n return encoding.isArrayBuffer(val);\n}\nexport function getType(val) {\n return encoding.getType(val);\n}\nexport function getEncoding(val) {\n return encoding.getEncoding(val);\n}\nexport function isHexString(value, length) {\n return encoding.isHexString(value, length);\n}\nexport function isJsonRpcSubscription(object) {\n return typeof object.params === \"object\";\n}\nexport function isJsonRpcRequest(object) {\n return typeof object.method !== \"undefined\";\n}\nexport function isJsonRpcResponseSuccess(object) {\n return typeof object.result !== \"undefined\";\n}\nexport function isJsonRpcResponseError(object) {\n return typeof object.error !== \"undefined\";\n}\nexport function isInternalEvent(object) {\n return typeof object.event !== \"undefined\";\n}\nexport function isReservedEvent(event) {\n return reservedEvents.includes(event) || event.startsWith(\"wc_\");\n}\nexport function isSilentPayload(request) {\n if (request.method.startsWith(\"wc_\")) {\n return true;\n }\n if (signingMethods.includes(request.method)) {\n return false;\n }\n return true;\n}\n//# sourceMappingURL=validators.js.map","import QRCode from \"qrcode\";\n\nexport function open(uri: string) {\n // eslint-disable-next-line no-console\n QRCode.toString(uri, { type: \"terminal\" }).then(console.log);\n}\n\nexport function close() {\n // empty\n}\n","export const WALLETCONNECT_STYLE_SHEET = `:root {\n --animation-duration: 300ms;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes fadeOut {\n from {\n opacity: 1;\n }\n to {\n opacity: 0;\n }\n}\n\n.animated {\n animation-duration: var(--animation-duration);\n animation-fill-mode: both;\n}\n\n.fadeIn {\n animation-name: fadeIn;\n}\n\n.fadeOut {\n animation-name: fadeOut;\n}\n\n#walletconnect-wrapper {\n -webkit-user-select: none;\n align-items: center;\n display: flex;\n height: 100%;\n justify-content: center;\n left: 0;\n pointer-events: none;\n position: fixed;\n top: 0;\n user-select: none;\n width: 100%;\n z-index: 99999999999999;\n}\n\n.walletconnect-modal__headerLogo {\n height: 21px;\n}\n\n.walletconnect-modal__header p {\n color: #ffffff;\n font-size: 20px;\n font-weight: 600;\n margin: 0;\n align-items: flex-start;\n display: flex;\n flex: 1;\n margin-left: 5px;\n}\n\n.walletconnect-modal__close__wrapper {\n position: absolute;\n top: 0px;\n right: 0px;\n z-index: 10000;\n background: white;\n border-radius: 26px;\n padding: 6px;\n box-sizing: border-box;\n width: 26px;\n height: 26px;\n cursor: pointer;\n}\n\n.walletconnect-modal__close__icon {\n position: relative;\n top: 7px;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n transform: rotate(45deg);\n}\n\n.walletconnect-modal__close__line1 {\n position: absolute;\n width: 100%;\n border: 1px solid rgb(48, 52, 59);\n}\n\n.walletconnect-modal__close__line2 {\n position: absolute;\n width: 100%;\n border: 1px solid rgb(48, 52, 59);\n transform: rotate(90deg);\n}\n\n.walletconnect-qrcode__base {\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n background: rgba(37, 41, 46, 0.95);\n height: 100%;\n left: 0;\n pointer-events: auto;\n position: fixed;\n top: 0;\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\n width: 100%;\n will-change: opacity;\n padding: 40px;\n box-sizing: border-box;\n}\n\n.walletconnect-qrcode__text {\n color: rgba(60, 66, 82, 0.6);\n font-size: 16px;\n font-weight: 600;\n letter-spacing: 0;\n line-height: 1.1875em;\n margin: 10px 0 20px 0;\n text-align: center;\n width: 100%;\n}\n\n@media only screen and (max-width: 768px) {\n .walletconnect-qrcode__text {\n font-size: 4vw;\n }\n}\n\n@media only screen and (max-width: 320px) {\n .walletconnect-qrcode__text {\n font-size: 14px;\n }\n}\n\n.walletconnect-qrcode__image {\n width: calc(100% - 30px);\n box-sizing: border-box;\n cursor: none;\n margin: 0 auto;\n}\n\n.walletconnect-qrcode__notification {\n position: absolute;\n bottom: 0;\n left: 0;\n right: 0;\n font-size: 16px;\n padding: 16px 20px;\n border-radius: 16px;\n text-align: center;\n transition: all 0.1s ease-in-out;\n background: white;\n color: black;\n margin-bottom: -60px;\n opacity: 0;\n}\n\n.walletconnect-qrcode__notification.notification__show {\n opacity: 1;\n}\n\n@media only screen and (max-width: 768px) {\n .walletconnect-modal__header {\n height: 130px;\n }\n .walletconnect-modal__base {\n overflow: auto;\n }\n}\n\n@media only screen and (min-device-width: 415px) and (max-width: 768px) {\n #content {\n max-width: 768px;\n box-sizing: border-box;\n }\n}\n\n@media only screen and (min-width: 375px) and (max-width: 415px) {\n #content {\n max-width: 414px;\n box-sizing: border-box;\n }\n}\n\n@media only screen and (min-width: 320px) and (max-width: 375px) {\n #content {\n max-width: 375px;\n box-sizing: border-box;\n }\n}\n\n@media only screen and (max-width: 320px) {\n #content {\n max-width: 320px;\n box-sizing: border-box;\n }\n}\n\n.walletconnect-modal__base {\n -webkit-font-smoothing: antialiased;\n background: #ffffff;\n border-radius: 24px;\n box-shadow: 0 10px 50px 5px rgba(0, 0, 0, 0.4);\n font-family: ui-rounded, \"SF Pro Rounded\", \"SF Pro Text\", medium-content-sans-serif-font,\n -apple-system, BlinkMacSystemFont, ui-sans-serif, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell,\n \"Open Sans\", \"Helvetica Neue\", sans-serif;\n margin-top: 41px;\n padding: 24px 24px 22px;\n pointer-events: auto;\n position: relative;\n text-align: center;\n transition: 0.4s cubic-bezier(0.19, 1, 0.22, 1);\n will-change: transform;\n overflow: visible;\n transform: translateY(-50%);\n top: 50%;\n max-width: 500px;\n margin: auto;\n}\n\n@media only screen and (max-width: 320px) {\n .walletconnect-modal__base {\n padding: 24px 12px;\n }\n}\n\n.walletconnect-modal__base .hidden {\n transform: translateY(150%);\n transition: 0.125s cubic-bezier(0.4, 0, 1, 1);\n}\n\n.walletconnect-modal__header {\n align-items: center;\n display: flex;\n height: 26px;\n left: 0;\n justify-content: space-between;\n position: absolute;\n top: -42px;\n width: 100%;\n}\n\n.walletconnect-modal__base .wc-logo {\n align-items: center;\n display: flex;\n height: 26px;\n margin-top: 15px;\n padding-bottom: 15px;\n pointer-events: auto;\n}\n\n.walletconnect-modal__base .wc-logo div {\n background-color: #3399ff;\n height: 21px;\n margin-right: 5px;\n mask-image: url(\"images/wc-logo.svg\") center no-repeat;\n width: 32px;\n}\n\n.walletconnect-modal__base .wc-logo p {\n color: #ffffff;\n font-size: 20px;\n font-weight: 600;\n margin: 0;\n}\n\n.walletconnect-modal__base h2 {\n color: rgba(60, 66, 82, 0.6);\n font-size: 16px;\n font-weight: 600;\n letter-spacing: 0;\n line-height: 1.1875em;\n margin: 0 0 19px 0;\n text-align: center;\n width: 100%;\n}\n\n.walletconnect-modal__base__row {\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n align-items: center;\n border-radius: 20px;\n cursor: pointer;\n display: flex;\n height: 56px;\n justify-content: space-between;\n padding: 0 15px;\n position: relative;\n margin: 0px 0px 8px;\n text-align: left;\n transition: 0.15s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n will-change: transform;\n text-decoration: none;\n}\n\n.walletconnect-modal__base__row:hover {\n background: rgba(60, 66, 82, 0.06);\n}\n\n.walletconnect-modal__base__row:active {\n background: rgba(60, 66, 82, 0.06);\n transform: scale(0.975);\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n}\n\n.walletconnect-modal__base__row__h3 {\n color: #25292e;\n font-size: 20px;\n font-weight: 700;\n margin: 0;\n padding-bottom: 3px;\n}\n\n.walletconnect-modal__base__row__right {\n align-items: center;\n display: flex;\n justify-content: center;\n}\n\n.walletconnect-modal__base__row__right__app-icon {\n border-radius: 8px;\n height: 34px;\n margin: 0 11px 2px 0;\n width: 34px;\n background-size: 100%;\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\n}\n\n.walletconnect-modal__base__row__right__caret {\n height: 18px;\n opacity: 0.3;\n transition: 0.1s cubic-bezier(0.25, 0.46, 0.45, 0.94);\n width: 8px;\n will-change: opacity;\n}\n\n.walletconnect-modal__base__row:hover .caret,\n.walletconnect-modal__base__row:active .caret {\n opacity: 0.6;\n}\n\n.walletconnect-modal__mobile__toggle {\n width: 80%;\n display: flex;\n margin: 0 auto;\n position: relative;\n overflow: hidden;\n border-radius: 8px;\n margin-bottom: 18px;\n background: #d4d5d9;\n}\n\n.walletconnect-modal__single_wallet {\n display: flex;\n justify-content: center;\n margin-top: 7px;\n margin-bottom: 18px;\n}\n\n.walletconnect-modal__single_wallet a {\n cursor: pointer;\n color: rgb(64, 153, 255);\n font-size: 21px;\n font-weight: 800;\n text-decoration: none !important;\n margin: 0 auto;\n}\n\n.walletconnect-modal__mobile__toggle_selector {\n width: calc(50% - 8px);\n background: white;\n position: absolute;\n border-radius: 5px;\n height: calc(100% - 8px);\n top: 4px;\n transition: all 0.2s ease-in-out;\n transform: translate3d(4px, 0, 0);\n}\n\n.walletconnect-modal__mobile__toggle.right__selected .walletconnect-modal__mobile__toggle_selector {\n transform: translate3d(calc(100% + 12px), 0, 0);\n}\n\n.walletconnect-modal__mobile__toggle a {\n font-size: 12px;\n width: 50%;\n text-align: center;\n padding: 8px;\n margin: 0;\n font-weight: 600;\n z-index: 1;\n}\n\n.walletconnect-modal__footer {\n display: flex;\n justify-content: center;\n margin-top: 20px;\n}\n\n@media only screen and (max-width: 768px) {\n .walletconnect-modal__footer {\n margin-top: 5vw;\n }\n}\n\n.walletconnect-modal__footer a {\n cursor: pointer;\n color: #898d97;\n font-size: 15px;\n margin: 0 auto;\n}\n\n@media only screen and (max-width: 320px) {\n .walletconnect-modal__footer a {\n font-size: 14px;\n }\n}\n\n.walletconnect-connect__buttons__wrapper {\n max-height: 44vh;\n}\n\n.walletconnect-connect__buttons__wrapper__android {\n margin: 50% 0;\n}\n\n.walletconnect-connect__buttons__wrapper__wrap {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n margin: 10px 0;\n}\n\n@media only screen and (min-width: 768px) {\n .walletconnect-connect__buttons__wrapper__wrap {\n margin-top: 40px;\n }\n}\n\n.walletconnect-connect__button {\n background-color: rgb(64, 153, 255);\n padding: 12px;\n border-radius: 8px;\n text-decoration: none;\n color: rgb(255, 255, 255);\n font-weight: 500;\n}\n\n.walletconnect-connect__button__icon_anchor {\n cursor: pointer;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n margin: 8px;\n width: 42px;\n justify-self: center;\n flex-direction: column;\n text-decoration: none !important;\n}\n\n@media only screen and (max-width: 320px) {\n .walletconnect-connect__button__icon_anchor {\n margin: 4px;\n }\n}\n\n.walletconnect-connect__button__icon {\n border-radius: 10px;\n height: 42px;\n margin: 0;\n width: 42px;\n background-size: cover !important;\n box-shadow: 0 4px 12px 0 rgba(37, 41, 46, 0.25);\n}\n\n.walletconnect-connect__button__text {\n color: #424952;\n font-size: 2.7vw;\n text-decoration: none !important;\n padding: 0;\n margin-top: 1.8vw;\n font-weight: 600;\n}\n\n@media only screen and (min-width: 768px) {\n .walletconnect-connect__button__text {\n font-size: 16px;\n margin-top: 12px;\n }\n}\n\n.walletconnect-search__input {\n border: none;\n background: #d4d5d9;\n border-style: none;\n padding: 8px 16px;\n outline: none;\n font-style: normal;\n font-stretch: normal;\n font-size: 16px;\n font-style: normal;\n font-stretch: normal;\n line-height: normal;\n letter-spacing: normal;\n text-align: left;\n border-radius: 8px;\n width: calc(100% - 16px);\n margin: 0;\n margin-bottom: 8px;\n}\n`;","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","export const WALLETCONNECT_LOGO_SVG_URL = `data:image/svg+xml,%3C?xml version='1.0' encoding='UTF-8'?%3E %3Csvg width='300px' height='185px' viewBox='0 0 300 185' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3C!-- Generator: Sketch 49.3 (51167) - http://www.bohemiancoding.com/sketch --%3E %3Ctitle%3EWalletConnect%3C/title%3E %3Cdesc%3ECreated with Sketch.%3C/desc%3E %3Cdefs%3E%3C/defs%3E %3Cg id='Page-1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cg id='walletconnect-logo-alt' fill='%233B99FC' fill-rule='nonzero'%3E %3Cpath d='M61.4385429,36.2562612 C110.349767,-11.6319051 189.65053,-11.6319051 238.561752,36.2562612 L244.448297,42.0196786 C246.893858,44.4140867 246.893858,48.2961898 244.448297,50.690599 L224.311602,70.406102 C223.088821,71.6033071 221.106302,71.6033071 219.883521,70.406102 L211.782937,62.4749541 C177.661245,29.0669724 122.339051,29.0669724 88.2173582,62.4749541 L79.542302,70.9685592 C78.3195204,72.1657633 76.337001,72.1657633 75.1142214,70.9685592 L54.9775265,51.2530561 C52.5319653,48.8586469 52.5319653,44.9765439 54.9775265,42.5821357 L61.4385429,36.2562612 Z M280.206339,77.0300061 L298.128036,94.5769031 C300.573585,96.9713 300.573599,100.85338 298.128067,103.247793 L217.317896,182.368927 C214.872352,184.763353 210.907314,184.76338 208.461736,182.368989 C208.461726,182.368979 208.461714,182.368967 208.461704,182.368957 L151.107561,126.214385 C150.496171,125.615783 149.504911,125.615783 148.893521,126.214385 C148.893517,126.214389 148.893514,126.214393 148.89351,126.214396 L91.5405888,182.368927 C89.095052,184.763359 85.1300133,184.763399 82.6844276,182.369014 C82.6844133,182.369 82.684398,182.368986 82.6843827,182.36897 L1.87196327,103.246785 C-0.573596939,100.852377 -0.573596939,96.9702735 1.87196327,94.5758653 L19.7936929,77.028998 C22.2392531,74.6345898 26.2042918,74.6345898 28.6498531,77.028998 L86.0048306,133.184355 C86.6162214,133.782957 87.6074796,133.782957 88.2188704,133.184355 C88.2188796,133.184346 88.2188878,133.184338 88.2188969,133.184331 L145.571,77.028998 C148.016505,74.6345347 151.981544,74.6344449 154.427161,77.028798 C154.427195,77.0288316 154.427229,77.0288653 154.427262,77.028899 L211.782164,133.184331 C212.393554,133.782932 213.384814,133.782932 213.996204,133.184331 L271.350179,77.0300061 C273.79574,74.6355969 277.760778,74.6355969 280.206339,77.0300061 Z' id='WalletConnect'%3E%3C/path%3E %3C/g%3E %3C/g%3E %3C/svg%3E`;","export const WALLETCONNECT_HEADER_TEXT = \"WalletConnect\";\n\nexport const ANIMATION_DURATION = 300;\nexport const DEFAULT_BUTTON_COLOR = \"rgb(64, 153, 255)\";\n\nexport const WALLETCONNECT_WRAPPER_ID = \"walletconnect-wrapper\";\nexport const WALLETCONNECT_STYLE_ID = \"walletconnect-style-sheet\";\nexport const WALLETCONNECT_MODAL_ID = \"walletconnect-qrcode-modal\";\nexport const WALLETCONNECT_CLOSE_BUTTON_ID = \"walletconnect-qrcode-close\";\nexport const WALLETCONNECT_CTA_TEXT_ID = \"walletconnect-qrcode-text\";\nexport const WALLETCONNECT_CONNECT_BUTTON_ID = \"walletconnect-connect-button\";\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport * as React from \"react\";\n\nimport { WALLETCONNECT_LOGO_SVG_URL } from \"../assets/logo\";\nimport { WALLETCONNECT_HEADER_TEXT, WALLETCONNECT_CLOSE_BUTTON_ID } from \"../constants\";\n\ninterface HeaderProps {\n onClose: any;\n}\n\nfunction Header(props: HeaderProps) {\n return (\n
\n \n

{WALLETCONNECT_HEADER_TEXT}

\n
\n
\n
\n
\n
\n
\n
\n );\n}\n\nexport default Header;\n","import * as React from \"react\";\n\nimport { WALLETCONNECT_CONNECT_BUTTON_ID } from \"../constants\";\n\ninterface ConnectButtonProps {\n name: string;\n color: string;\n href: string;\n onClick: (event: React.MouseEvent) => void;\n}\n\nfunction ConnectButton(props: ConnectButtonProps) {\n return (\n \n {props.name}\n
\n );\n}\n\nexport default ConnectButton;\n","export const CARET_SVG_URL = `data:image/svg+xml,%3Csvg width='8' height='18' viewBox='0 0 8 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M0.586301 0.213898C0.150354 0.552968 0.0718197 1.18124 0.41089 1.61719L5.2892 7.88931C5.57007 8.25042 5.57007 8.75608 5.2892 9.11719L0.410889 15.3893C0.071819 15.8253 0.150353 16.4535 0.586301 16.7926C1.02225 17.1317 1.65052 17.0531 1.98959 16.6172L6.86791 10.3451C7.7105 9.26174 7.7105 7.74476 6.86791 6.66143L1.98959 0.38931C1.65052 -0.0466374 1.02225 -0.125172 0.586301 0.213898Z' fill='%233C4252'/%3E %3C/svg%3E`;","import * as React from \"react\";\nimport { CARET_SVG_URL } from \"../assets/caret\";\n\ninterface WalletButtonProps {\n color: string;\n name: string;\n logo: string;\n href: string;\n onClick: (event: React.MouseEvent) => void;\n}\n\nfunction WalletButton(props: WalletButtonProps) {\n const { color, href, name, logo, onClick } = props;\n return (\n \n

{name}

\n
\n
\n \n \n \n );\n}\n\nexport default WalletButton;\n","import * as React from \"react\";\n\ninterface WalletIconProps {\n color: string;\n logo: string;\n href: string;\n name: string;\n onClick: (event: React.MouseEvent) => void;\n}\n\nfunction WalletIcon(props: WalletIconProps) {\n const { color, href, name, logo, onClick } = props;\n const fontSize = window.innerWidth < 768 ? `${name.length > 8 ? 2.5 : 2.7}vw` : \"inherit\";\n return (\n \n \n
\n {name}\n
\n \n );\n}\n\nexport default WalletIcon;\n","import * as React from \"react\";\nimport { IMobileRegistryEntry, IQRCodeModalOptions } from \"@walletconnect/types\";\nimport { isAndroid, formatIOSMobile, saveMobileLinkInfo } from \"@walletconnect/browser-utils\";\n\nimport { DEFAULT_BUTTON_COLOR, WALLETCONNECT_CTA_TEXT_ID } from \"../constants\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport ConnectButton from \"./ConnectButton\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport WalletButton from \"./WalletButton\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport WalletIcon from \"./WalletIcon\";\nimport { TextMap } from \"../types\";\n\ninterface LinkDisplayProps {\n mobile: boolean;\n text: TextMap;\n uri: string;\n qrcodeModalOptions?: IQRCodeModalOptions;\n links: IMobileRegistryEntry[];\n errorMessage: string;\n}\n\nconst GRID_MIN_COUNT = 5;\nconst LINKS_PER_PAGE = 12;\n\nfunction LinkDisplay(props: LinkDisplayProps) {\n const android = isAndroid();\n const [input, setInput] = React.useState(\"\");\n const [filter, setFilter] = React.useState(\"\");\n const [page, setPage] = React.useState(1);\n const links = filter\n ? props.links.filter(link => link.name.toLowerCase().includes(filter.toLowerCase()))\n : props.links;\n const errorMessage = props.errorMessage;\n const grid = filter || links.length > GRID_MIN_COUNT;\n const pages = Math.ceil(links.length / LINKS_PER_PAGE);\n const range = [(page - 1) * LINKS_PER_PAGE + 1, page * LINKS_PER_PAGE];\n const pageLinks = links.length\n ? links.filter((_, index) => index + 1 >= range[0] && index + 1 <= range[1])\n : [];\n const hasPaging = !!(!android && pages > 1);\n let filterTimeout: any = undefined;\n function handleInput(e) {\n setInput(e.target.value);\n clearTimeout(filterTimeout);\n if (e.target.value) {\n filterTimeout = setTimeout(() => {\n setFilter(e.target.value);\n setPage(1);\n }, 1000);\n } else {\n setInput(\"\");\n setFilter(\"\");\n setPage(1);\n }\n }\n\n return (\n
\n

\n {android ? props.text.connect_mobile_wallet : props.text.choose_preferred_wallet}\n

\n {!android && (\n \n )}\n \n {!android ? (\n pageLinks.length ? (\n pageLinks.map((entry: IMobileRegistryEntry) => {\n const { color, name, shortName, logo } = entry;\n const href = formatIOSMobile(props.uri, entry);\n const handleClickIOS = React.useCallback(() => {\n saveMobileLinkInfo({\n name,\n href,\n });\n }, [pageLinks]);\n return !grid ? (\n \n ) : (\n \n );\n })\n ) : (\n <>\n

\n {errorMessage.length\n ? props.errorMessage\n : !!props.links.length && !links.length\n ? props.text.no_wallets_found\n : props.text.loading}\n

\n \n )\n ) : (\n {\n saveMobileLinkInfo({\n name: \"Unknown\",\n href: props.uri,\n });\n }, [])}\n />\n )}\n
\n {hasPaging && (\n
\n {Array(pages)\n .fill(0)\n .map((_, index) => {\n const pageNumber = index + 1;\n const selected = page === pageNumber;\n return (\n setPage(pageNumber)}\n >\n {pageNumber}\n \n );\n })}\n
\n )}\n \n );\n}\n\nexport default LinkDisplay;\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport * as React from \"react\";\n\ninterface NotificationProps {\n message: string;\n}\n\nfunction Notification(props: NotificationProps) {\n const show = !!props.message.trim();\n return (\n
\n {props.message}\n
\n );\n}\n\nexport default Notification;\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport * as React from \"react\";\nimport QRCode from \"qrcode\";\nimport copy from \"copy-to-clipboard\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Notification from \"./Notification\";\n\nimport { WALLETCONNECT_CTA_TEXT_ID } from \"../constants\";\nimport { TextMap } from \"../types\";\n\nasync function formatQRCodeImage(data: string) {\n let result = \"\";\n const dataString = await QRCode.toString(data, { margin: 0, type: \"svg\" });\n if (typeof dataString === \"string\") {\n result = dataString.replace(\" {\n (async () => {\n setSvg(await formatQRCodeImage(props.uri));\n })();\n }, []);\n\n const copyToClipboard = () => {\n const success = copy(props.uri);\n if (success) {\n setNotification(props.text.copied_to_clipboard);\n setInterval(() => setNotification(\"\"), 1200);\n } else {\n setNotification(\"Error\");\n setInterval(() => setNotification(\"\"), 1200);\n }\n };\n\n return (\n
\n

\n {props.text.scan_qrcode_with_wallet}\n

\n
\n \n \n
\n );\n}\n\nexport default QRCodeDisplay;\n","import * as React from \"react\";\nimport {\n IMobileRegistryEntry,\n IQRCodeModalOptions,\n IAppRegistry,\n IMobileLinkInfo,\n} from \"@walletconnect/types\";\nimport {\n isMobile,\n isAndroid,\n formatIOSMobile,\n saveMobileLinkInfo,\n getMobileLinkRegistry,\n getWalletRegistryUrl,\n formatMobileRegistry,\n} from \"@walletconnect/browser-utils\";\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Header from \"./Header\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport LinkDisplay from \"./LinkDisplay\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport QRCodeDisplay from \"./QRCodeDisplay\";\n\nimport { WALLETCONNECT_MODAL_ID } from \"../constants\";\nimport { TextMap } from \"../types\";\n\ninterface ModalProps {\n text: TextMap;\n uri: string;\n onClose: any;\n qrcodeModalOptions?: IQRCodeModalOptions;\n}\n\nfunction Modal(props: ModalProps) {\n const android = isAndroid();\n const mobile = isMobile();\n\n const whitelist = mobile\n ? props.qrcodeModalOptions && props.qrcodeModalOptions.mobileLinks\n ? props.qrcodeModalOptions.mobileLinks\n : undefined\n : props.qrcodeModalOptions && props.qrcodeModalOptions.desktopLinks\n ? props.qrcodeModalOptions.desktopLinks\n : undefined;\n const [loading, setLoading] = React.useState(false);\n const [fetched, setFetched] = React.useState(false);\n const [displayQRCode, setDisplayQRCode] = React.useState(!mobile);\n const displayProps = {\n mobile,\n text: props.text,\n uri: props.uri,\n qrcodeModalOptions: props.qrcodeModalOptions,\n };\n\n const [singleLinkHref, setSingleLinkHref] = React.useState(\"\");\n const [hasSingleLink, setHasSingleLink] = React.useState(false);\n const [links, setLinks] = React.useState([]);\n const [errorMessage, setErrorMessage] = React.useState(\"\");\n\n const getLinksIfNeeded = () => {\n if (fetched || loading || (whitelist && !whitelist.length) || links.length > 0) {\n return;\n }\n\n React.useEffect(() => {\n const initLinks = async () => {\n if (android) return;\n setLoading(true);\n try {\n const url =\n props.qrcodeModalOptions && props.qrcodeModalOptions.registryUrl\n ? props.qrcodeModalOptions.registryUrl\n : getWalletRegistryUrl();\n const registry = (await fetch(url).then(x => x.json())) as IAppRegistry;\n const platform = mobile ? \"mobile\" : \"desktop\";\n const _links = getMobileLinkRegistry(formatMobileRegistry(registry, platform), whitelist);\n setLoading(false);\n setFetched(true);\n setErrorMessage(!_links.length ? props.text.no_supported_wallets : \"\");\n setLinks(_links);\n const hasSingleLink = _links.length === 1;\n if (hasSingleLink) {\n setSingleLinkHref(formatIOSMobile(props.uri, _links[0]));\n setDisplayQRCode(true);\n }\n setHasSingleLink(hasSingleLink);\n } catch (e) {\n setLoading(false);\n setFetched(true);\n setErrorMessage(props.text.something_went_wrong);\n console.error(e); // eslint-disable-line no-console\n }\n };\n initLinks();\n });\n };\n\n getLinksIfNeeded();\n\n const rightSelected = mobile ? displayQRCode : !displayQRCode;\n return (\n
\n
\n
\n {hasSingleLink && displayQRCode ? (\n
\n saveMobileLinkInfo({ name: links[0].name, href: singleLinkHref })}\n href={singleLinkHref}\n rel=\"noopener noreferrer\"\n target=\"_blank\"\n >\n {props.text.connect_with + \" \" + (hasSingleLink ? links[0].name : \"\") + \" ›\"}\n \n
\n ) : android || loading || (!loading && links.length) ? (\n \n \n ) : null}\n\n
\n {displayQRCode || (!android && !loading && !links.length) ? (\n \n ) : (\n \n )}\n
\n
\n
\n );\n}\n\nexport default Modal;\n","import { TextMap } from \"../types\";\n\nconst de: TextMap = {\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\nexport default de;\n","import { TextMap } from \"../types\";\n\nconst en: TextMap = {\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\nexport default en;\n","import { TextMap } from \"../types\";\n\nconst es: TextMap = {\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\nexport default es;\n","import { TextMap } from \"../types\";\n\nconst fr: TextMap = {\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\nexport default fr;\n","import { TextMap } from \"../types\";\n\nconst ko: TextMap = {\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\nexport default ko;\n","import { TextMap } from \"../types\";\n\nconst pt: TextMap = {\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\nexport default pt;\n","import { TextMap } from \"../types\";\n\nconst zh: TextMap = {\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\nexport default zh;\n","import { TextMap } from \"../types\";\n\nconst fa: TextMap = {\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\nexport default fa;\n","import { TextMap } from \"../types\";\n\nimport de from \"./de\";\nimport en from \"./en\";\nimport es from \"./es\";\nimport fr from \"./fr\";\nimport ko from \"./ko\";\nimport pt from \"./pt\";\nimport zh from \"./zh\";\nimport fa from \"./fa\";\n\nconst languages: { [lang: string]: TextMap } = { de, en, es, fr, ko, pt, zh, fa };\n\nexport default languages;\n","// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport * as React from \"react\";\n// @ts-ignore\nimport * as ReactDOM from \"react-dom\";\nimport { getDocumentOrThrow, getNavigatorOrThrow } from \"@walletconnect/browser-utils\";\n\nimport { WALLETCONNECT_STYLE_SHEET } from \"./assets/style\";\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport Modal from \"./components/Modal\";\nimport Languages from \"./languages\";\nimport {\n ANIMATION_DURATION,\n WALLETCONNECT_WRAPPER_ID,\n WALLETCONNECT_MODAL_ID,\n WALLETCONNECT_STYLE_ID,\n} from \"./constants\";\nimport { IQRCodeModalOptions } from \"@walletconnect/types\";\nimport { TextMap } from \"./types\";\n\nfunction injectStyleSheet() {\n const doc = getDocumentOrThrow();\n const prev = doc.getElementById(WALLETCONNECT_STYLE_ID);\n if (prev) {\n doc.head.removeChild(prev);\n }\n const 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(): HTMLDivElement {\n const doc = getDocumentOrThrow();\n const wrapper = doc.createElement(\"div\");\n wrapper.setAttribute(\"id\", WALLETCONNECT_WRAPPER_ID);\n doc.body.appendChild(wrapper);\n return wrapper;\n}\n\nfunction triggerCloseAnimation(): void {\n const doc = getDocumentOrThrow();\n const modal = doc.getElementById(WALLETCONNECT_MODAL_ID);\n if (modal) {\n modal.className = modal.className.replace(\"fadeIn\", \"fadeOut\");\n setTimeout(() => {\n const wrapper = doc.getElementById(WALLETCONNECT_WRAPPER_ID);\n if (wrapper) {\n doc.body.removeChild(wrapper);\n }\n }, ANIMATION_DURATION);\n }\n}\n\nfunction getWrappedCallback(cb: any): any {\n return () => {\n triggerCloseAnimation();\n if (cb) {\n cb();\n }\n };\n}\n\nfunction getText(): TextMap {\n const lang = getNavigatorOrThrow().language.split(\"-\")[0] || \"en\";\n return Languages[lang] || Languages[\"en\"];\n}\n\nexport function open(uri: string, cb: any, qrcodeModalOptions?: IQRCodeModalOptions) {\n injectStyleSheet();\n const wrapper = renderWrapper();\n ReactDOM.render(\n ,\n wrapper,\n );\n}\n\nexport function close() {\n triggerCloseAnimation();\n}\n","/**\n * Assign properties from `props` to `obj`\n * @template O, P The obj and props types\n * @param {O} obj The object to copy properties to\n * @param {P} props The object to copy properties from\n * @returns {O & P}\n */\nexport function assign(obj, props) {\n\tfor (let i in props) obj[i] = props[i];\n\treturn /** @type {O & P} */ (obj);\n}\n\n/**\n * Remove a child node from its parent if attached. This is a workaround for\n * IE11 which doesn't support `Element.prototype.remove()`. Using this function\n * is smaller than including a dedicated polyfill.\n * @param {Node} node The node to remove\n */\nexport function removeNode(node) {\n\tlet parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n","import { Component } from 'preact';\nimport { shallowDiffers } from './util';\n\n/**\n * Component class with a predefined `shouldComponentUpdate` implementation\n */\nexport class PureComponent extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\t// Some third-party libraries check if this property is present\n\t\tthis.isPureReactComponent = true;\n\t}\n\n\tshouldComponentUpdate(props, state) {\n\t\treturn (\n\t\t\tshallowDiffers(this.props, props) || shallowDiffers(this.state, state)\n\t\t);\n\t}\n}\n","import { createElement } from 'preact';\nimport { shallowDiffers, assign } from './util';\n\n/**\n * Memoize a component, so that it only updates when the props actually have\n * changed. This was previously known as `React.pure`.\n * @param {import('./internal').FunctionalComponent} c functional component\n * @param {(prev: object, next: object) => boolean} [comparer] Custom equality function\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function memo(c, comparer) {\n\tfunction shouldUpdate(nextProps) {\n\t\tlet ref = this.props.ref;\n\t\tlet updateRef = ref == nextProps.ref;\n\t\tif (!updateRef && ref) {\n\t\t\tref.call ? ref(null) : (ref.current = null);\n\t\t}\n\n\t\tif (!comparer) {\n\t\t\treturn shallowDiffers(this.props, nextProps);\n\t\t}\n\n\t\treturn !comparer(this.props, nextProps) || !updateRef;\n\t}\n\n\tfunction Memoed(props) {\n\t\tthis.shouldComponentUpdate = shouldUpdate;\n\t\treturn createElement(c, assign({}, props));\n\t}\n\tMemoed.prototype.isReactComponent = true;\n\tMemoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';\n\tMemoed._forwarded = true;\n\treturn Memoed;\n}\n","import { options } from 'preact';\nimport { assign } from './util';\n\nlet oldDiffHook = options._diff;\noptions._diff = vnode => {\n\tif (vnode.type && vnode.type._forwarded && vnode.ref) {\n\t\tvnode.props.ref = vnode.ref;\n\t\tvnode.ref = null;\n\t}\n\tif (oldDiffHook) oldDiffHook(vnode);\n};\n\n/**\n * Pass ref down to a child. This is mainly used in libraries with HOCs that\n * wrap components. Using `forwardRef` there is an easy way to get a reference\n * of the wrapped component instead of one of the wrapper itself.\n * @param {import('./index').ForwardFn} fn\n * @returns {import('./internal').FunctionalComponent}\n */\nexport function forwardRef(fn) {\n\tfunction Forwarded(props) {\n\t\tlet clone = assign({}, props);\n\t\tdelete clone.ref;\n\t\treturn fn(clone, props.ref);\n\t}\n\tForwarded.prototype.isReactComponent = Forwarded._forwarded = true;\n\tForwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';\n\treturn Forwarded;\n}\n","import { toChildArray } from 'preact';\n\nconst mapFn = (children, fn) => {\n\tif (!children) return null;\n\treturn toChildArray(children).reduce(\n\t\t(acc, value, index) => acc.concat(fn(value, index)),\n\t\t[]\n\t);\n};\n\n// This API is completely unnecessary for Preact, so it's basically passthrough.\nexport const Children = {\n\tmap: mapFn,\n\tforEach: mapFn,\n\tcount(children) {\n\t\treturn children ? toChildArray(children).length : 0;\n\t},\n\tonly(children) {\n\t\tchildren = toChildArray(children);\n\t\tif (children.length !== 1) {\n\t\t\tthrow new Error('Children.only() expects only one child.');\n\t\t}\n\t\treturn children[0];\n\t},\n\ttoArray: toChildArray\n};\n","import { Component, createElement, options } from 'preact';\nimport { assign } from './util';\n\nconst oldCatchError = options._catchError;\noptions._catchError = function(error, newVNode, oldVNode) {\n\tif (error.then) {\n\t\t/** @type {import('./internal').Component} */\n\t\tlet component;\n\t\tlet vnode = newVNode;\n\n\t\tfor (; (vnode = vnode._parent); ) {\n\t\t\tif ((component = vnode._component) && component._childDidSuspend) {\n\t\t\t\t// Don't call oldCatchError if we found a Suspense\n\t\t\t\treturn component._childDidSuspend(error, newVNode._component);\n\t\t\t}\n\t\t}\n\t}\n\toldCatchError(error, newVNode, oldVNode);\n};\n\nfunction detachedClone(vnode) {\n\tif (vnode) {\n\t\tvnode = assign({}, vnode);\n\t\tvnode._component = null;\n\t\tvnode._children = vnode._children && vnode._children.map(detachedClone);\n\t}\n\treturn vnode;\n}\n\n// having custom inheritance instead of a class here saves a lot of bytes\nexport function Suspense() {\n\t// we do not call super here to golf some bytes...\n\tthis._pendingSuspensionCount = 0;\n\tthis._suspenders = null;\n\tthis._detachOnNextRender = null;\n}\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspense.prototype = new Component();\n\n/**\n * @param {Promise} promise The thrown promise\n * @param {Component} suspendingComponent The suspending component\n */\nSuspense.prototype._childDidSuspend = function(promise, suspendingComponent) {\n\t/** @type {import('./internal').SuspenseComponent} */\n\tconst c = this;\n\n\tif (c._suspenders == null) {\n\t\tc._suspenders = [];\n\t}\n\tc._suspenders.push(suspendingComponent);\n\n\tconst resolve = suspended(c._vnode);\n\n\tlet resolved = false;\n\tconst onResolved = () => {\n\t\tif (resolved) return;\n\n\t\tresolved = true;\n\n\t\tif (resolve) {\n\t\t\tresolve(onSuspensionComplete);\n\t\t} else {\n\t\t\tonSuspensionComplete();\n\t\t}\n\t};\n\n\tsuspendingComponent._suspendedComponentWillUnmount =\n\t\tsuspendingComponent.componentWillUnmount;\n\tsuspendingComponent.componentWillUnmount = () => {\n\t\tonResolved();\n\n\t\tif (suspendingComponent._suspendedComponentWillUnmount) {\n\t\t\tsuspendingComponent._suspendedComponentWillUnmount();\n\t\t}\n\t};\n\n\tconst onSuspensionComplete = () => {\n\t\tif (!--c._pendingSuspensionCount) {\n\t\t\tc._vnode._children[0] = c.state._suspended;\n\t\t\tc.setState({ _suspended: (c._detachOnNextRender = null) });\n\n\t\t\tlet suspended;\n\t\t\twhile ((suspended = c._suspenders.pop())) {\n\t\t\t\tsuspended.forceUpdate();\n\t\t\t}\n\t\t}\n\t};\n\n\tif (!c._pendingSuspensionCount++) {\n\t\tc.setState({ _suspended: (c._detachOnNextRender = c._vnode._children[0]) });\n\t}\n\tpromise.then(onResolved, onResolved);\n};\n\nSuspense.prototype.render = function(props, state) {\n\tif (this._detachOnNextRender) {\n\t\tthis._vnode._children[0] = detachedClone(this._detachOnNextRender);\n\t\tthis._detachOnNextRender = null;\n\t}\n\n\treturn [\n\t\tcreateElement(Component, null, state._suspended ? null : props.children),\n\t\tstate._suspended && props.fallback\n\t];\n};\n\n/**\n * Checks and calls the parent component's _suspended method, passing in the\n * suspended vnode. This is a way for a parent (e.g. SuspenseList) to get notified\n * that one of its children/descendants suspended.\n *\n * The parent MAY return a callback. The callback will get called when the\n * suspension resolves, notifying the parent of the fact.\n * Moreover, the callback gets function `unsuspend` as a parameter. The resolved\n * child descendant will not actually get unsuspended until `unsuspend` gets called.\n * This is a way for the parent to delay unsuspending.\n *\n * If the parent does not return a callback then the resolved vnode\n * gets unsuspended immediately when it resolves.\n *\n * @param {import('../src/internal').VNode} vnode\n * @returns {((unsuspend: () => void) => void)?}\n */\nexport function suspended(vnode) {\n\tlet component = vnode._parent._component;\n\treturn component && component._suspended && component._suspended(vnode);\n}\n\nexport function lazy(loader) {\n\tlet prom;\n\tlet component;\n\tlet error;\n\n\tfunction Lazy(props) {\n\t\tif (!prom) {\n\t\t\tprom = loader();\n\t\t\tprom.then(\n\t\t\t\texports => {\n\t\t\t\t\tcomponent = exports.default || exports;\n\t\t\t\t},\n\t\t\t\te => {\n\t\t\t\t\terror = e;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (error) {\n\t\t\tthrow error;\n\t\t}\n\n\t\tif (!component) {\n\t\t\tthrow prom;\n\t\t}\n\n\t\treturn createElement(component, props);\n\t}\n\n\tLazy.displayName = 'Lazy';\n\tLazy._forwarded = true;\n\treturn Lazy;\n}\n","import { Component, toChildArray } from 'preact';\nimport { suspended } from './suspense.js';\n\n// Indexes to linked list nodes (nodes are stored as arrays to save bytes).\nconst SUSPENDED_COUNT = 0;\nconst RESOLVED_COUNT = 1;\nconst NEXT_NODE = 2;\n\n// Having custom inheritance instead of a class here saves a lot of bytes.\nexport function SuspenseList() {\n\tthis._next = null;\n\tthis._map = null;\n}\n\n// Mark one of child's earlier suspensions as resolved.\n// Some pending callbacks may become callable due to this\n// (e.g. the last suspended descendant gets resolved when\n// revealOrder === 'together'). Process those callbacks as well.\nconst resolve = (list, child, node) => {\n\tif (++node[RESOLVED_COUNT] === node[SUSPENDED_COUNT]) {\n\t\t// The number a child (or any of its descendants) has been suspended\n\t\t// matches the number of times it's been resolved. Therefore we\n\t\t// mark the child as completely resolved by deleting it from ._map.\n\t\t// This is used to figure out when *all* children have been completely\n\t\t// resolved when revealOrder is 'together'.\n\t\tlist._map.delete(child);\n\t}\n\n\t// If revealOrder is falsy then we can do an early exit, as the\n\t// callbacks won't get queued in the node anyway.\n\t// If revealOrder is 'together' then also do an early exit\n\t// if all suspended descendants have not yet been resolved.\n\tif (\n\t\t!list.props.revealOrder ||\n\t\t(list.props.revealOrder[0] === 't' && list._map.size)\n\t) {\n\t\treturn;\n\t}\n\n\t// Walk the currently suspended children in order, calling their\n\t// stored callbacks on the way. Stop if we encounter a child that\n\t// has not been completely resolved yet.\n\tnode = list._next;\n\twhile (node) {\n\t\twhile (node.length > 3) {\n\t\t\tnode.pop()();\n\t\t}\n\t\tif (node[RESOLVED_COUNT] < node[SUSPENDED_COUNT]) {\n\t\t\tbreak;\n\t\t}\n\t\tlist._next = node = node[NEXT_NODE];\n\t}\n};\n\n// Things we do here to save some bytes but are not proper JS inheritance:\n// - call `new Component()` as the prototype\n// - do not set `Suspense.prototype.constructor` to `Suspense`\nSuspenseList.prototype = new Component();\n\nSuspenseList.prototype._suspended = function(child) {\n\tconst list = this;\n\tconst delegated = suspended(list._vnode);\n\n\tlet node = list._map.get(child);\n\tnode[SUSPENDED_COUNT]++;\n\n\treturn unsuspend => {\n\t\tconst wrappedUnsuspend = () => {\n\t\t\tif (!list.props.revealOrder) {\n\t\t\t\t// Special case the undefined (falsy) revealOrder, as there\n\t\t\t\t// is no need to coordinate a specific order or unsuspends.\n\t\t\t\tunsuspend();\n\t\t\t} else {\n\t\t\t\tnode.push(unsuspend);\n\t\t\t\tresolve(list, child, node);\n\t\t\t}\n\t\t};\n\t\tif (delegated) {\n\t\t\tdelegated(wrappedUnsuspend);\n\t\t} else {\n\t\t\twrappedUnsuspend();\n\t\t}\n\t};\n};\n\nSuspenseList.prototype.render = function(props) {\n\tthis._next = null;\n\tthis._map = new Map();\n\n\tconst children = toChildArray(props.children);\n\tif (props.revealOrder && props.revealOrder[0] === 'b') {\n\t\t// If order === 'backwards' (or, well, anything starting with a 'b')\n\t\t// then flip the child list around so that the last child will be\n\t\t// the first in the linked list.\n\t\tchildren.reverse();\n\t}\n\t// Build the linked list. Iterate through the children in reverse order\n\t// so that `_next` points to the first linked list node to be resolved.\n\tfor (let i = children.length; i--; ) {\n\t\t// Create a new linked list node as an array of form:\n\t\t// \t[suspended_count, resolved_count, next_node]\n\t\t// where suspended_count and resolved_count are numeric counters for\n\t\t// keeping track how many times a node has been suspended and resolved.\n\t\t//\n\t\t// Note that suspended_count starts from 1 instead of 0, so we can block\n\t\t// processing callbacks until componentDidMount has been called. In a sense\n\t\t// node is suspended at least until componentDidMount gets called!\n\t\t//\n\t\t// Pending callbacks are added to the end of the node:\n\t\t// \t[suspended_count, resolved_count, next_node, callback_0, callback_1, ...]\n\t\tthis._map.set(children[i], (this._next = [1, 0, this._next]));\n\t}\n\treturn props.children;\n};\n\nSuspenseList.prototype.componentDidUpdate = SuspenseList.prototype.componentDidMount = function() {\n\t// Iterate through all children after mounting for two reasons:\n\t// 1. As each node[SUSPENDED_COUNT] starts from 1, this iteration increases\n\t// each node[RELEASED_COUNT] by 1, therefore balancing the counters.\n\t// The nodes can now be completely consumed from the linked list.\n\t// 2. Handle nodes that might have gotten resolved between render and\n\t// componentDidMount.\n\tconst list = this;\n\tlist._map.forEach((node, child) => {\n\t\tresolve(list, child, node);\n\t});\n};\n","import { createElement, hydrate, render, _unmount } from 'preact';\n\nclass ContextProvider {\n\tgetChildContext() {\n\t\treturn this.props.context;\n\t}\n\trender(props) {\n\t\treturn props.children;\n\t}\n}\n\n/**\n * Portal component\n * @param {object | null | undefined} props\n */\nfunction Portal(props) {\n\tlet _this = this;\n\tlet container = props.container;\n\tlet wrap = createElement(\n\t\tContextProvider,\n\t\t{ context: _this.context },\n\t\tprops.vnode\n\t);\n\n\t// When we change container we should clear our old container and\n\t// indicate a new mount.\n\tif (_this._container && _this._container !== container) {\n\t\tif (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t_unmount(_this._wrap);\n\t\t_this._hasMounted = false;\n\t}\n\n\t// When props.vnode is undefined/false/null we are dealing with some kind of\n\t// conditional vnode. This should not trigger a render.\n\tif (props.vnode) {\n\t\tif (!_this._hasMounted) {\n\t\t\t// Create a placeholder that we can use to insert into.\n\t\t\t_this._temp = document.createTextNode('');\n\t\t\t// Hydrate existing nodes to keep the dom intact, when rendering\n\t\t\t// wrap into the container.\n\t\t\thydrate('', container);\n\t\t\t// Append to the container (this matches React's behavior)\n\t\t\tcontainer.appendChild(_this._temp);\n\t\t\t// At this point we have mounted and should set our container.\n\t\t\t_this._hasMounted = true;\n\t\t\t_this._container = container;\n\t\t\t// Render our wrapping element into temp.\n\t\t\trender(wrap, container, _this._temp);\n\t\t\t_this._children = _this._temp._children;\n\t\t} else {\n\t\t\t// When we have mounted and the vnode is present it means the\n\t\t\t// props have changed or a parent is triggering a rerender.\n\t\t\t// This implies we only need to call render. But we need to keep\n\t\t\t// the old tree around, otherwise will treat the vnodes as new and\n\t\t\t// will wrongly call `componentDidMount` on them\n\t\t\tcontainer._children = _this._children;\n\t\t\trender(wrap, container);\n\t\t\t_this._children = container._children;\n\t\t}\n\t}\n\t// When we come from a conditional render, on a mounted\n\t// portal we should clear the DOM.\n\telse if (_this._hasMounted) {\n\t\tif (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t_unmount(_this._wrap);\n\t}\n\t// Set the wrapping element for future unmounting.\n\t_this._wrap = wrap;\n\n\t_this.componentWillUnmount = () => {\n\t\tif (_this._temp.parentNode) _this._container.removeChild(_this._temp);\n\t\t_unmount(_this._wrap);\n\t};\n\n\treturn null;\n}\n\n/**\n * Create a `Portal` to continue rendering the vnode tree at a different DOM node\n * @param {import('./internal').VNode} vnode The vnode to render\n * @param {import('./internal').PreactElement} container The DOM node to continue rendering in to.\n */\nexport function createPortal(vnode, container) {\n\treturn createElement(Portal, { vnode, container });\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from './constants';\nimport { commitRoot, diff } from './diff/index';\nimport { createElement, Fragment } from './create-element';\nimport options from './options';\n\nconst IS_HYDRATE = EMPTY_OBJ;\n\n/**\n * Render a Preact virtual node into a DOM element\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * render into\n * @param {Element | Text} [replaceNode] Optional: Attempt to re-use an\n * existing DOM tree rooted at `replaceNode`\n */\nexport function render(vnode, parentDom, replaceNode) {\n\tif (options._root) options._root(vnode, parentDom);\n\n\t// We abuse the `replaceNode` parameter in `hydrate()` to signal if we\n\t// are in hydration mode or not by passing `IS_HYDRATE` instead of a\n\t// DOM element.\n\tlet isHydrating = replaceNode === IS_HYDRATE;\n\n\t// To be able to support calling `render()` multiple times on the same\n\t// DOM node, we need to obtain a reference to the previous tree. We do\n\t// this by assigning a new `_children` property to DOM nodes which points\n\t// to the last rendered tree. By default this property is not present, which\n\t// means that we are mounting a new tree for the first time.\n\tlet oldVNode = isHydrating\n\t\t? null\n\t\t: (replaceNode && replaceNode._children) || parentDom._children;\n\tvnode = createElement(Fragment, null, [vnode]);\n\n\t// List of effects that need to be called after diffing.\n\tlet commitQueue = [];\n\tdiff(\n\t\tparentDom,\n\t\t// Determine the new vnode tree and store it on the DOM element on\n\t\t// our custom `_children` property.\n\t\t((isHydrating ? parentDom : replaceNode || parentDom)._children = vnode),\n\t\toldVNode || EMPTY_OBJ,\n\t\tEMPTY_OBJ,\n\t\tparentDom.ownerSVGElement !== undefined,\n\t\treplaceNode && !isHydrating\n\t\t\t? [replaceNode]\n\t\t\t: oldVNode\n\t\t\t? null\n\t\t\t: EMPTY_ARR.slice.call(parentDom.childNodes),\n\t\tcommitQueue,\n\t\treplaceNode || EMPTY_OBJ,\n\t\tisHydrating\n\t);\n\n\t// Flush all queued effects\n\tcommitRoot(commitQueue, vnode);\n}\n\n/**\n * Update an existing DOM element with data from a Preact virtual node\n * @param {import('./index').ComponentChild} vnode The virtual node to render\n * @param {import('./internal').PreactElement} parentDom The DOM element to\n * update\n */\nexport function hydrate(vnode, parentDom) {\n\trender(vnode, parentDom, IS_HYDRATE);\n}\n","/**\n * Normalize event handlers like react does. Most famously it uses `onChange` for any input element.\n * @param {import('./internal').VNode} vnode The vnode to normalize events on\n */\nexport function applyEventNormalization({ type, props }) {\n\tif (!props || typeof type != 'string') return;\n\tlet newProps = {};\n\n\tfor (let i in props) {\n\t\tif (/^on(Ani|Tra|Tou)/.test(i)) {\n\t\t\tprops[i.toLowerCase()] = props[i];\n\t\t\tdelete props[i];\n\t\t}\n\t\tnewProps[i.toLowerCase()] = i;\n\t}\n\tif (newProps.ondoubleclick) {\n\t\tprops.ondblclick = props[newProps.ondoubleclick];\n\t\tdelete props[newProps.ondoubleclick];\n\t}\n\tif (newProps.onbeforeinput) {\n\t\tprops.onbeforeinput = props[newProps.onbeforeinput];\n\t\tdelete props[newProps.onbeforeinput];\n\t}\n\t// for *textual inputs* (incl textarea), normalize `onChange` -> `onInput`:\n\tif (\n\t\tnewProps.onchange &&\n\t\t(type === 'textarea' ||\n\t\t\t(type.toLowerCase() === 'input' && !/^fil|che|ra/i.test(props.type)))\n\t) {\n\t\tlet normalized = newProps.oninput || 'oninput';\n\t\tif (!props[normalized]) {\n\t\t\tprops[normalized] = props[newProps.onchange];\n\t\t\tdelete props[newProps.onchange];\n\t\t}\n\t}\n}\n","import { options } from 'preact';\n\n/** @type {number} */\nlet currentIndex;\n\n/** @type {import('./internal').Component} */\nlet currentComponent;\n\n/** @type {number} */\nlet currentHook = 0;\n\n/** @type {Array} */\nlet afterPaintEffects = [];\n\nlet oldBeforeRender = options._render;\nlet oldAfterDiff = options.diffed;\nlet oldCommit = options._commit;\nlet oldBeforeUnmount = options.unmount;\n\nconst RAF_TIMEOUT = 100;\nlet prevRaf;\n\noptions._render = vnode => {\n\tif (oldBeforeRender) oldBeforeRender(vnode);\n\n\tcurrentComponent = vnode._component;\n\tcurrentIndex = 0;\n\n\tif (currentComponent.__hooks) {\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\tcurrentComponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\tcurrentComponent.__hooks._pendingEffects = [];\n\t}\n};\n\noptions.diffed = vnode => {\n\tif (oldAfterDiff) oldAfterDiff(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\tif (hooks._pendingEffects.length) {\n\t\t\tafterPaint(afterPaintEffects.push(c));\n\t\t}\n\t}\n};\n\noptions._commit = (vnode, commitQueue) => {\n\tcommitQueue.some(component => {\n\t\ttry {\n\t\t\tcomponent._renderCallbacks.forEach(invokeCleanup);\n\t\t\tcomponent._renderCallbacks = component._renderCallbacks.filter(cb =>\n\t\t\t\tcb._value ? invokeEffect(cb) : true\n\t\t\t);\n\t\t} catch (e) {\n\t\t\tcommitQueue.some(c => {\n\t\t\t\tif (c._renderCallbacks) c._renderCallbacks = [];\n\t\t\t});\n\t\t\tcommitQueue = [];\n\t\t\toptions._catchError(e, component._vnode);\n\t\t}\n\t});\n\n\tif (oldCommit) oldCommit(vnode, commitQueue);\n};\n\noptions.unmount = vnode => {\n\tif (oldBeforeUnmount) oldBeforeUnmount(vnode);\n\n\tconst c = vnode._component;\n\tif (!c) return;\n\n\tconst hooks = c.__hooks;\n\tif (hooks) {\n\t\ttry {\n\t\t\thooks._list.forEach(hook => hook._cleanup && hook._cleanup());\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t}\n};\n\n/**\n * Get a hook's state from the currentComponent\n * @param {number} index The index of the hook to get\n * @param {number} type The index of the hook to get\n * @returns {import('./internal').HookState}\n */\nfunction getHookState(index, type) {\n\tif (options._hook) {\n\t\toptions._hook(currentComponent, index, currentHook || type);\n\t}\n\tcurrentHook = 0;\n\n\t// Largely inspired by:\n\t// * https://github.com/michael-klein/funcy.js/blob/f6be73468e6ec46b0ff5aa3cc4c9baf72a29025a/src/hooks/core_hooks.mjs\n\t// * https://github.com/michael-klein/funcy.js/blob/650beaa58c43c33a74820a3c98b3c7079cf2e333/src/renderer.mjs\n\t// Other implementations to look at:\n\t// * https://codesandbox.io/s/mnox05qp8\n\tconst hooks =\n\t\tcurrentComponent.__hooks ||\n\t\t(currentComponent.__hooks = {\n\t\t\t_list: [],\n\t\t\t_pendingEffects: []\n\t\t});\n\n\tif (index >= hooks._list.length) {\n\t\thooks._list.push({});\n\t}\n\treturn hooks._list[index];\n}\n\n/**\n * @param {import('./index').StateUpdater} initialState\n */\nexport function useState(initialState) {\n\tcurrentHook = 1;\n\treturn useReducer(invokeOrReturn, initialState);\n}\n\n/**\n * @param {import('./index').Reducer} reducer\n * @param {import('./index').StateUpdater} initialState\n * @param {(initialState: any) => void} [init]\n * @returns {[ any, (state: any) => void ]}\n */\nexport function useReducer(reducer, initialState, init) {\n\t/** @type {import('./internal').ReducerHookState} */\n\tconst hookState = getHookState(currentIndex++, 2);\n\tif (!hookState._component) {\n\t\thookState._component = currentComponent;\n\n\t\thookState._value = [\n\t\t\t!init ? invokeOrReturn(undefined, initialState) : init(initialState),\n\n\t\t\taction => {\n\t\t\t\tconst nextValue = reducer(hookState._value[0], action);\n\t\t\t\tif (hookState._value[0] !== nextValue) {\n\t\t\t\t\thookState._value[0] = nextValue;\n\t\t\t\t\thookState._component.setState({});\n\t\t\t\t}\n\t\t\t}\n\t\t];\n\t}\n\n\treturn hookState._value;\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 3);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent.__hooks._pendingEffects.push(state);\n\t}\n}\n\n/**\n * @param {import('./internal').Effect} callback\n * @param {any[]} args\n */\nexport function useLayoutEffect(callback, args) {\n\t/** @type {import('./internal').EffectHookState} */\n\tconst state = getHookState(currentIndex++, 4);\n\tif (!options._skipEffects && argsChanged(state._args, args)) {\n\t\tstate._value = callback;\n\t\tstate._args = args;\n\n\t\tcurrentComponent._renderCallbacks.push(state);\n\t}\n}\n\nexport function useRef(initialValue) {\n\tcurrentHook = 5;\n\treturn useMemo(() => ({ current: initialValue }), []);\n}\n\n/**\n * @param {object} ref\n * @param {() => object} createHandle\n * @param {any[]} args\n */\nexport function useImperativeHandle(ref, createHandle, args) {\n\tcurrentHook = 6;\n\tuseLayoutEffect(\n\t\t() => {\n\t\t\tif (typeof ref == 'function') ref(createHandle());\n\t\t\telse if (ref) ref.current = createHandle();\n\t\t},\n\t\targs == null ? args : args.concat(ref)\n\t);\n}\n\n/**\n * @param {() => any} factory\n * @param {any[]} args\n */\nexport function useMemo(factory, args) {\n\t/** @type {import('./internal').MemoHookState} */\n\tconst state = getHookState(currentIndex++, 7);\n\tif (argsChanged(state._args, args)) {\n\t\tstate._args = args;\n\t\tstate._factory = factory;\n\t\treturn (state._value = factory());\n\t}\n\n\treturn state._value;\n}\n\n/**\n * @param {() => void} callback\n * @param {any[]} args\n */\nexport function useCallback(callback, args) {\n\tcurrentHook = 8;\n\treturn useMemo(() => callback, args);\n}\n\n/**\n * @param {import('./internal').PreactContext} context\n */\nexport function useContext(context) {\n\tconst provider = currentComponent.context[context._id];\n\t// We could skip this call here, but than we'd not call\n\t// `options._hook`. We need to do that in order to make\n\t// the devtools aware of this hook.\n\tconst state = getHookState(currentIndex++, 9);\n\t// The devtools needs access to the context object to\n\t// be able to pull of the default value when no provider\n\t// is present in the tree.\n\tstate._context = context;\n\tif (!provider) return context._defaultValue;\n\t// This is probably not safe to convert to \"!\"\n\tif (state._value == null) {\n\t\tstate._value = true;\n\t\tprovider.sub(currentComponent);\n\t}\n\treturn provider.props.value;\n}\n\n/**\n * Display a custom label for a custom hook for the devtools panel\n * @type {(value: T, cb?: (value: T) => string | number) => void}\n */\nexport function useDebugValue(value, formatter) {\n\tif (options.useDebugValue) {\n\t\toptions.useDebugValue(formatter ? formatter(value) : value);\n\t}\n}\n\nexport function useErrorBoundary(cb) {\n\tconst state = getHookState(currentIndex++, 10);\n\tconst errState = useState();\n\tstate._value = cb;\n\tif (!currentComponent.componentDidCatch) {\n\t\tcurrentComponent.componentDidCatch = err => {\n\t\t\tif (state._value) state._value(err);\n\t\t\terrState[1](err);\n\t\t};\n\t}\n\treturn [\n\t\terrState[0],\n\t\t() => {\n\t\t\terrState[1](undefined);\n\t\t}\n\t];\n}\n\n/**\n * After paint effects consumer.\n */\nfunction flushAfterPaintEffects() {\n\tafterPaintEffects.some(component => {\n\t\tif (component._parentDom) {\n\t\t\ttry {\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeCleanup);\n\t\t\t\tcomponent.__hooks._pendingEffects.forEach(invokeEffect);\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t} catch (e) {\n\t\t\t\tcomponent.__hooks._pendingEffects = [];\n\t\t\t\toptions._catchError(e, component._vnode);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t});\n\tafterPaintEffects = [];\n}\n\n/**\n * Schedule a callback to be invoked after the browser has a chance to paint a new frame.\n * Do this by combining requestAnimationFrame (rAF) + setTimeout to invoke a callback after\n * the next browser frame.\n *\n * Also, schedule a timeout in parallel to the the rAF to ensure the callback is invoked\n * even if RAF doesn't fire (for example if the browser tab is not visible)\n *\n * @param {() => void} callback\n */\nfunction afterNextFrame(callback) {\n\tconst done = () => {\n\t\tclearTimeout(timeout);\n\t\tcancelAnimationFrame(raf);\n\t\tsetTimeout(callback);\n\t};\n\tconst timeout = setTimeout(done, RAF_TIMEOUT);\n\n\tlet raf;\n\tif (typeof window != 'undefined') {\n\t\traf = requestAnimationFrame(done);\n\t}\n}\n\n// Note: if someone used options.debounceRendering = requestAnimationFrame,\n// then effects will ALWAYS run on the NEXT frame instead of the current one, incurring a ~16ms delay.\n// Perhaps this is not such a big deal.\n/**\n * Schedule afterPaintEffects flush after the browser paints\n * @param {number} newQueueLength\n */\nfunction afterPaint(newQueueLength) {\n\tif (newQueueLength === 1 || prevRaf !== options.requestAnimationFrame) {\n\t\tprevRaf = options.requestAnimationFrame;\n\t\t(prevRaf || afterNextFrame)(flushAfterPaintEffects);\n\t}\n}\n\n/**\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeCleanup(hook) {\n\tif (hook._cleanup) hook._cleanup();\n}\n\n/**\n * Invoke a Hook's effect\n * @param {import('./internal').EffectHookState} hook\n */\nfunction invokeEffect(hook) {\n\tconst result = hook._value();\n\tif (typeof result == 'function') hook._cleanup = result;\n}\n\n/**\n * @param {any[]} oldArgs\n * @param {any[]} newArgs\n */\nfunction argsChanged(oldArgs, newArgs) {\n\treturn !oldArgs || newArgs.some((arg, index) => arg !== oldArgs[index]);\n}\n\nfunction invokeOrReturn(arg, f) {\n\treturn typeof f == 'function' ? f(arg) : f;\n}\n","export const EMPTY_OBJ = {};\nexport const EMPTY_ARR = [];\nexport const IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n","import { _catchError } from './diff/catch-error';\n\n/**\n * The `option` object can potentially contain callback functions\n * that are called during various stages of our renderer. This is the\n * foundation on which all our addons like `preact/debug`, `preact/compat`,\n * and `preact/hooks` are based on. See the `Options` type in `internal.d.ts`\n * for a full list of available option hooks (most editors/IDEs allow you to\n * ctrl+click or cmd+click on mac the type definition below).\n * @type {import('./internal').Options}\n */\nconst options = {\n\t_catchError\n};\n\nexport default options;\n","import options from './options';\n\n/**\n * Create an virtual node (used for JSX)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * constructor for this virtual node\n * @param {object | null | undefined} [props] The properties of the virtual node\n * @param {Array} [children] The children of the virtual node\n * @returns {import('./internal').VNode}\n */\nexport function createElement(type, props, children) {\n\tlet normalizedProps = {},\n\t\ti;\n\tfor (i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\tif (arguments.length > 3) {\n\t\tchildren = [children];\n\t\t// https://github.com/preactjs/preact/issues/1916\n\t\tfor (i = 3; i < arguments.length; i++) {\n\t\t\tchildren.push(arguments[i]);\n\t\t}\n\t}\n\tif (children != null) {\n\t\tnormalizedProps.children = children;\n\t}\n\n\t// If a Component VNode, check for and apply defaultProps\n\t// Note: type may be undefined in development, must never error here.\n\tif (typeof type == 'function' && type.defaultProps != null) {\n\t\tfor (i in type.defaultProps) {\n\t\t\tif (normalizedProps[i] === undefined) {\n\t\t\t\tnormalizedProps[i] = type.defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createVNode(\n\t\ttype,\n\t\tnormalizedProps,\n\t\tprops && props.key,\n\t\tprops && props.ref,\n\t\tnull\n\t);\n}\n\n/**\n * Create a VNode (used internally by Preact)\n * @param {import('./internal').VNode[\"type\"]} type The node name or Component\n * Constructor for this virtual node\n * @param {object | string | number | null} props The properties of this virtual node.\n * If this virtual node represents a text node, this is the text of the node (string or number).\n * @param {string | number | null} key The key for this virtual node, used when\n * diffing it against its children\n * @param {import('./internal').VNode[\"ref\"]} ref The ref property that will\n * receive a reference to its created child\n * @returns {import('./internal').VNode}\n */\nexport function createVNode(type, props, key, ref, original) {\n\t// V8 seems to be better at detecting type shapes if the object is allocated from the same call site\n\t// Do not inline into createElement and coerceToVNode!\n\tconst vnode = {\n\t\ttype,\n\t\tprops,\n\t\tkey,\n\t\tref,\n\t\t_children: null,\n\t\t_parent: null,\n\t\t_depth: 0,\n\t\t_dom: null,\n\t\t// _nextDom must be initialized to undefined b/c it will eventually\n\t\t// be set to dom.nextSibling which can return `null` and it is important\n\t\t// to be able to distinguish between an uninitialized _nextDom and\n\t\t// a _nextDom that has been set to `null`\n\t\t_nextDom: undefined,\n\t\t_component: null,\n\t\tconstructor: undefined,\n\t\t_original: original\n\t};\n\n\tif (original == null) vnode._original = vnode;\n\tif (options.vnode) options.vnode(vnode);\n\n\treturn vnode;\n}\n\nexport function createRef() {\n\treturn {};\n}\n\nexport function Fragment(props) {\n\treturn props.children;\n}\n\n/**\n * Check if a the argument is a valid Preact VNode.\n * @param {*} vnode\n * @returns {vnode is import('./internal').VNode}\n */\nexport const isValidElement = vnode =>\n\tvnode != null && vnode.constructor === undefined;\n","import { assign } from './util';\nimport { diff, commitRoot } from './diff/index';\nimport options from './options';\nimport { Fragment } from './create-element';\n\n/**\n * Base Component class. Provides `setState()` and `forceUpdate()`, which\n * trigger rendering\n * @param {object} props The initial component props\n * @param {object} context The initial context from parent components'\n * getChildContext\n */\nexport function Component(props, context) {\n\tthis.props = props;\n\tthis.context = context;\n}\n\n/**\n * Update component state and schedule a re-render.\n * @param {object | ((s: object, p: object) => object)} update A hash of state\n * properties to update with new values or a function that given the current\n * state and props returns a new partial state\n * @param {() => void} [callback] A function to be called once component state is\n * updated\n */\nComponent.prototype.setState = function(update, callback) {\n\t// only clone state when copying to nextState the first time.\n\tlet s;\n\tif (this._nextState !== this.state) {\n\t\ts = this._nextState;\n\t} else {\n\t\ts = this._nextState = assign({}, this.state);\n\t}\n\n\tif (typeof update == 'function') {\n\t\tupdate = update(s, this.props);\n\t}\n\n\tif (update) {\n\t\tassign(s, update);\n\t}\n\n\t// Skip update if updater function returned null\n\tif (update == null) return;\n\n\tif (this._vnode) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Immediately perform a synchronous re-render of the component\n * @param {() => void} [callback] A function to be called after component is\n * re-rendered\n */\nComponent.prototype.forceUpdate = function(callback) {\n\tif (this._vnode) {\n\t\t// Set render mode so that we can differentiate where the render request\n\t\t// is coming from. We need this because forceUpdate should never call\n\t\t// shouldComponentUpdate\n\t\tthis._force = true;\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t}\n};\n\n/**\n * Accepts `props` and `state`, and returns a new Virtual DOM tree to build.\n * Virtual DOM is generally constructed via [JSX](http://jasonformat.com/wtf-is-jsx).\n * @param {object} props Props (eg: JSX attributes) received from parent\n * element/component\n * @param {object} state The component's current state\n * @param {object} context Context object, as returned by the nearest\n * ancestor's `getChildContext()`\n * @returns {import('./index').ComponentChildren | void}\n */\nComponent.prototype.render = Fragment;\n\n/**\n * @param {import('./internal').VNode} vnode\n * @param {number | null} [childIndex]\n */\nexport function getDomSibling(vnode, childIndex) {\n\tif (childIndex == null) {\n\t\t// Use childIndex==null as a signal to resume the search from the vnode's sibling\n\t\treturn vnode._parent\n\t\t\t? getDomSibling(vnode._parent, vnode._parent._children.indexOf(vnode) + 1)\n\t\t\t: null;\n\t}\n\n\tlet sibling;\n\tfor (; childIndex < vnode._children.length; childIndex++) {\n\t\tsibling = vnode._children[childIndex];\n\n\t\tif (sibling != null && sibling._dom != null) {\n\t\t\t// Since updateParentDomPointers keeps _dom pointer correct,\n\t\t\t// we can rely on _dom to tell us if this subtree contains a\n\t\t\t// rendered DOM node, and what the first rendered DOM node is\n\t\t\treturn sibling._dom;\n\t\t}\n\t}\n\n\t// If we get here, we have not found a DOM node in this vnode's children.\n\t// We must resume from this vnode's sibling (in it's parent _children array)\n\t// Only climb up and search the parent if we aren't searching through a DOM\n\t// VNode (meaning we reached the DOM parent of the original vnode that began\n\t// the search)\n\treturn typeof vnode.type == 'function' ? getDomSibling(vnode) : null;\n}\n\n/**\n * Trigger in-place re-rendering of a component.\n * @param {import('./internal').Component} component The component to rerender\n */\nfunction renderComponent(component) {\n\tlet vnode = component._vnode,\n\t\toldDom = vnode._dom,\n\t\tparentDom = component._parentDom;\n\n\tif (parentDom) {\n\t\tlet commitQueue = [];\n\t\tconst oldVNode = assign({}, vnode);\n\t\toldVNode._original = oldVNode;\n\n\t\tlet newDom = diff(\n\t\t\tparentDom,\n\t\t\tvnode,\n\t\t\toldVNode,\n\t\t\tcomponent._globalContext,\n\t\t\tparentDom.ownerSVGElement !== undefined,\n\t\t\tnull,\n\t\t\tcommitQueue,\n\t\t\toldDom == null ? getDomSibling(vnode) : oldDom\n\t\t);\n\t\tcommitRoot(commitQueue, vnode);\n\n\t\tif (newDom != oldDom) {\n\t\t\tupdateParentDomPointers(vnode);\n\t\t}\n\t}\n}\n\n/**\n * @param {import('./internal').VNode} vnode\n */\nfunction updateParentDomPointers(vnode) {\n\tif ((vnode = vnode._parent) != null && vnode._component != null) {\n\t\tvnode._dom = vnode._component.base = null;\n\t\tfor (let i = 0; i < vnode._children.length; i++) {\n\t\t\tlet child = vnode._children[i];\n\t\t\tif (child != null && child._dom != null) {\n\t\t\t\tvnode._dom = vnode._component.base = child._dom;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn updateParentDomPointers(vnode);\n\t}\n}\n\n/**\n * The render queue\n * @type {Array}\n */\nlet rerenderQueue = [];\nlet rerenderCount = 0;\n\n/**\n * Asynchronously schedule a callback\n * @type {(cb: () => void) => void}\n */\n/* istanbul ignore next */\n// Note the following line isn't tree-shaken by rollup cuz of rollup/rollup#2566\nconst defer =\n\ttypeof Promise == 'function'\n\t\t? Promise.prototype.then.bind(Promise.resolve())\n\t\t: setTimeout;\n\n/*\n * The value of `Component.debounce` must asynchronously invoke the passed in callback. It is\n * important that contributors to Preact can consistently reason about what calls to `setState`, etc.\n * do, and when their effects will be applied. See the links below for some further reading on designing\n * asynchronous APIs.\n * * [Designing APIs for Asynchrony](https://blog.izs.me/2013/08/designing-apis-for-asynchrony)\n * * [Callbacks synchronous and asynchronous](https://blog.ometer.com/2011/07/24/callbacks-synchronous-and-asynchronous/)\n */\n\nlet prevDebounce;\n\n/**\n * Enqueue a rerender of a component\n * @param {import('./internal').Component} c The component to rerender\n */\nexport function enqueueRender(c) {\n\tif (\n\t\t(!c._dirty &&\n\t\t\t(c._dirty = true) &&\n\t\t\trerenderQueue.push(c) &&\n\t\t\t!rerenderCount++) ||\n\t\tprevDebounce !== options.debounceRendering\n\t) {\n\t\tprevDebounce = options.debounceRendering;\n\t\t(prevDebounce || defer)(process);\n\t}\n}\n\n/** Flush the render queue by rerendering all queued components */\nfunction process() {\n\tlet queue;\n\twhile ((rerenderCount = rerenderQueue.length)) {\n\t\tqueue = rerenderQueue.sort((a, b) => a._vnode._depth - b._vnode._depth);\n\t\trerenderQueue = [];\n\t\t// Don't update `renderCount` yet. Keep its value non-zero to prevent unnecessary\n\t\t// process() calls from getting scheduled while `queue` is still being consumed.\n\t\tqueue.some(c => {\n\t\t\tif (c._dirty) renderComponent(c);\n\t\t});\n\t}\n}\n","import { enqueueRender } from './component';\n\nexport let i = 0;\n\nexport function createContext(defaultValue) {\n\tconst ctx = {};\n\n\tconst context = {\n\t\t_id: '__cC' + i++,\n\t\t_defaultValue: defaultValue,\n\t\tConsumer(props, context) {\n\t\t\treturn props.children(context);\n\t\t},\n\t\tProvider(props) {\n\t\t\tif (!this.getChildContext) {\n\t\t\t\tconst subs = [];\n\t\t\t\tthis.getChildContext = () => {\n\t\t\t\t\tctx[context._id] = this;\n\t\t\t\t\treturn ctx;\n\t\t\t\t};\n\n\t\t\t\tthis.shouldComponentUpdate = _props => {\n\t\t\t\t\tif (this.props.value !== _props.value) {\n\t\t\t\t\t\tsubs.some(c => {\n\t\t\t\t\t\t\tc.context = _props.value;\n\t\t\t\t\t\t\tenqueueRender(c);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tthis.sub = c => {\n\t\t\t\t\tsubs.push(c);\n\t\t\t\t\tlet old = c.componentWillUnmount;\n\t\t\t\t\tc.componentWillUnmount = () => {\n\t\t\t\t\t\tsubs.splice(subs.indexOf(c), 1);\n\t\t\t\t\t\told && old.call(c);\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn props.children;\n\t\t}\n\t};\n\n\tcontext.Consumer.contextType = context;\n\n\t// Devtools needs access to the context object when it\n\t// encounters a Provider. This is necessary to support\n\t// setting `displayName` on the context object instead\n\t// of on the component itself. See:\n\t// https://reactjs.org/docs/context.html#contextdisplayname\n\tcontext.Provider._contextRef = context;\n\n\treturn context;\n}\n","import { diff, unmount, applyRef } from './index';\nimport { createVNode } from '../create-element';\nimport { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { removeNode } from '../util';\nimport { getDomSibling } from '../component';\n\n/**\n * Diff the children of a virtual node\n * @param {import('../internal').PreactElement} parentDom The DOM element whose\n * children are being diffed\n * @param {import('../internal').VNode} newParentVNode The new virtual\n * node whose children should be diff'ed against oldParentVNode\n * @param {import('../internal').VNode} oldParentVNode The old virtual\n * node whose children should be diff'ed against newParentVNode\n * @param {object} globalContext The current context object - modified by getChildContext\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Node | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} isHydrating Whether or not we are in hydration\n */\nexport function diffChildren(\n\tparentDom,\n\tnewParentVNode,\n\toldParentVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet i, j, oldVNode, newDom, sibDom, firstChildDom, refs;\n\n\t// This is a compression of oldParentVNode!=null && oldParentVNode != EMPTY_OBJ && oldParentVNode._children || EMPTY_ARR\n\t// as EMPTY_OBJ._children should be `undefined`.\n\tlet oldChildren = (oldParentVNode && oldParentVNode._children) || EMPTY_ARR;\n\n\tlet oldChildrenLength = oldChildren.length;\n\n\t// Only in very specific places should this logic be invoked (top level `render` and `diffElementNodes`).\n\t// I'm using `EMPTY_OBJ` to signal when `diffChildren` is invoked in these situations. I can't use `null`\n\t// for this purpose, because `null` is a valid value for `oldDom` which can mean to skip to this logic\n\t// (e.g. if mounting a new tree in which the old DOM should be ignored (usually for Fragments).\n\tif (oldDom == EMPTY_OBJ) {\n\t\tif (excessDomChildren != null) {\n\t\t\toldDom = excessDomChildren[0];\n\t\t} else if (oldChildrenLength) {\n\t\t\toldDom = getDomSibling(oldParentVNode, 0);\n\t\t} else {\n\t\t\toldDom = null;\n\t\t}\n\t}\n\n\ti = 0;\n\tnewParentVNode._children = toChildArray(\n\t\tnewParentVNode._children,\n\t\tchildVNode => {\n\t\t\tif (childVNode != null) {\n\t\t\t\tchildVNode._parent = newParentVNode;\n\t\t\t\tchildVNode._depth = newParentVNode._depth + 1;\n\n\t\t\t\t// Check if we find a corresponding element in oldChildren.\n\t\t\t\t// If found, delete the array item by setting to `undefined`.\n\t\t\t\t// We use `undefined`, as `null` is reserved for empty placeholders\n\t\t\t\t// (holes).\n\t\t\t\toldVNode = oldChildren[i];\n\n\t\t\t\tif (\n\t\t\t\t\toldVNode === null ||\n\t\t\t\t\t(oldVNode &&\n\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\tchildVNode.type === oldVNode.type)\n\t\t\t\t) {\n\t\t\t\t\toldChildren[i] = undefined;\n\t\t\t\t} else {\n\t\t\t\t\t// Either oldVNode === undefined or oldChildrenLength > 0,\n\t\t\t\t\t// so after this loop oldVNode == null or oldVNode is a valid value.\n\t\t\t\t\tfor (j = 0; j < oldChildrenLength; j++) {\n\t\t\t\t\t\toldVNode = oldChildren[j];\n\t\t\t\t\t\t// If childVNode is unkeyed, we only match similarly unkeyed nodes, otherwise we match by key.\n\t\t\t\t\t\t// We always match by type (in either case).\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\toldVNode &&\n\t\t\t\t\t\t\tchildVNode.key == oldVNode.key &&\n\t\t\t\t\t\t\tchildVNode.type === oldVNode.type\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\toldChildren[j] = undefined;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\toldVNode = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\toldVNode = oldVNode || EMPTY_OBJ;\n\n\t\t\t\t// Morph the old element into the new one, but don't append it to the dom yet\n\t\t\t\tnewDom = diff(\n\t\t\t\t\tparentDom,\n\t\t\t\t\tchildVNode,\n\t\t\t\t\toldVNode,\n\t\t\t\t\tglobalContext,\n\t\t\t\t\tisSvg,\n\t\t\t\t\texcessDomChildren,\n\t\t\t\t\tcommitQueue,\n\t\t\t\t\toldDom,\n\t\t\t\t\tisHydrating\n\t\t\t\t);\n\n\t\t\t\tif ((j = childVNode.ref) && oldVNode.ref != j) {\n\t\t\t\t\tif (!refs) refs = [];\n\t\t\t\t\tif (oldVNode.ref) refs.push(oldVNode.ref, null, childVNode);\n\t\t\t\t\trefs.push(j, childVNode._component || newDom, childVNode);\n\t\t\t\t}\n\n\t\t\t\t// Only proceed if the vnode has not been unmounted by `diff()` above.\n\t\t\t\tif (newDom != null) {\n\t\t\t\t\tif (firstChildDom == null) {\n\t\t\t\t\t\tfirstChildDom = newDom;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet nextDom;\n\t\t\t\t\tif (childVNode._nextDom !== undefined) {\n\t\t\t\t\t\t// Only Fragments or components that return Fragment like VNodes will\n\t\t\t\t\t\t// have a non-undefined _nextDom. Continue the diff from the sibling\n\t\t\t\t\t\t// of last DOM child of this child VNode\n\t\t\t\t\t\tnextDom = childVNode._nextDom;\n\n\t\t\t\t\t\t// Eagerly cleanup _nextDom. We don't need to persist the value because\n\t\t\t\t\t\t// it is only used by `diffChildren` to determine where to resume the diff after\n\t\t\t\t\t\t// diffing Components and Fragments. Once we store it the nextDOM local var, we\n\t\t\t\t\t\t// can clean up the property\n\t\t\t\t\t\tchildVNode._nextDom = undefined;\n\t\t\t\t\t} else if (\n\t\t\t\t\t\texcessDomChildren == oldVNode ||\n\t\t\t\t\t\tnewDom != oldDom ||\n\t\t\t\t\t\tnewDom.parentNode == null\n\t\t\t\t\t) {\n\t\t\t\t\t\t// NOTE: excessDomChildren==oldVNode above:\n\t\t\t\t\t\t// This is a compression of excessDomChildren==null && oldVNode==null!\n\t\t\t\t\t\t// The values only have the same type when `null`.\n\n\t\t\t\t\t\touter: if (oldDom == null || oldDom.parentNode !== parentDom) {\n\t\t\t\t\t\t\tparentDom.appendChild(newDom);\n\t\t\t\t\t\t\tnextDom = null;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// `j import('../internal').VNode} [callback]\n * A function to invoke for each child before it is added to the flattened list.\n * @param {Array} [flattened] An flat array of children to modify\n * @returns {import('../internal').VNode[]}\n */\nexport function toChildArray(children, callback, flattened) {\n\tif (flattened == null) flattened = [];\n\n\tif (children == null || typeof children == 'boolean') {\n\t\tif (callback) flattened.push(callback(null));\n\t} else if (Array.isArray(children)) {\n\t\tfor (let i = 0; i < children.length; i++) {\n\t\t\ttoChildArray(children[i], callback, flattened);\n\t\t}\n\t} else if (!callback) {\n\t\tflattened.push(children);\n\t} else if (typeof children == 'string' || typeof children == 'number') {\n\t\tflattened.push(callback(createVNode(null, children, null, null, children)));\n\t} else if (children._dom != null || children._component != null) {\n\t\tflattened.push(\n\t\t\tcallback(\n\t\t\t\tcreateVNode(\n\t\t\t\t\tchildren.type,\n\t\t\t\t\tchildren.props,\n\t\t\t\t\tchildren.key,\n\t\t\t\t\tnull,\n\t\t\t\t\tchildren._original\n\t\t\t\t)\n\t\t\t)\n\t\t);\n\t} else {\n\t\tflattened.push(callback(children));\n\t}\n\n\treturn flattened;\n}\n","import { IS_NON_DIMENSIONAL } from '../constants';\nimport options from '../options';\n\n/**\n * Diff the old and new properties of a VNode and apply changes to the DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to apply\n * changes to\n * @param {object} newProps The new props\n * @param {object} oldProps The old props\n * @param {boolean} isSvg Whether or not this node is an SVG node\n * @param {boolean} hydrate Whether or not we are in hydration mode\n */\nexport function diffProps(dom, newProps, oldProps, isSvg, hydrate) {\n\tlet i;\n\n\tfor (i in oldProps) {\n\t\tif (i !== 'children' && i !== 'key' && !(i in newProps)) {\n\t\t\tsetProperty(dom, i, null, oldProps[i], isSvg);\n\t\t}\n\t}\n\n\tfor (i in newProps) {\n\t\tif (\n\t\t\t(!hydrate || typeof newProps[i] == 'function') &&\n\t\t\ti !== 'children' &&\n\t\t\ti !== 'key' &&\n\t\t\ti !== 'value' &&\n\t\t\ti !== 'checked' &&\n\t\t\toldProps[i] !== newProps[i]\n\t\t) {\n\t\t\tsetProperty(dom, i, newProps[i], oldProps[i], isSvg);\n\t\t}\n\t}\n}\n\nfunction setStyle(style, key, value) {\n\tif (key[0] === '-') {\n\t\tstyle.setProperty(key, value);\n\t} else if (\n\t\ttypeof value == 'number' &&\n\t\tIS_NON_DIMENSIONAL.test(key) === false\n\t) {\n\t\tstyle[key] = value + 'px';\n\t} else if (value == null) {\n\t\tstyle[key] = '';\n\t} else {\n\t\tstyle[key] = value;\n\t}\n}\n\n/**\n * Set a property value on a DOM node\n * @param {import('../internal').PreactElement} dom The DOM node to modify\n * @param {string} name The name of the property to set\n * @param {*} value The value to set the property to\n * @param {*} oldValue The old value the property had\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node or not\n */\nexport function setProperty(dom, name, value, oldValue, isSvg) {\n\tlet s, useCapture, nameLower;\n\n\tif (isSvg) {\n\t\tif (name === 'className') {\n\t\t\tname = 'class';\n\t\t}\n\t} else if (name === 'class') {\n\t\tname = 'className';\n\t}\n\n\tif (name === 'style') {\n\t\ts = dom.style;\n\n\t\tif (typeof value == 'string') {\n\t\t\ts.cssText = value;\n\t\t} else {\n\t\t\tif (typeof oldValue == 'string') {\n\t\t\t\ts.cssText = '';\n\t\t\t\toldValue = null;\n\t\t\t}\n\n\t\t\tif (oldValue) {\n\t\t\t\tfor (let i in oldValue) {\n\t\t\t\t\tif (!(value && i in value)) {\n\t\t\t\t\t\tsetStyle(s, i, '');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value) {\n\t\t\t\tfor (let i in value) {\n\t\t\t\t\tif (!oldValue || value[i] !== oldValue[i]) {\n\t\t\t\t\t\tsetStyle(s, i, value[i]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Benchmark for comparison: https://esbench.com/bench/574c954bdb965b9a00965ac6\n\telse if (name[0] === 'o' && name[1] === 'n') {\n\t\tuseCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tnameLower = name.toLowerCase();\n\t\tname = (nameLower in dom ? nameLower : name).slice(2);\n\n\t\tif (value) {\n\t\t\tif (!oldValue) dom.addEventListener(name, eventProxy, useCapture);\n\t\t\t(dom._listeners || (dom._listeners = {}))[name] = value;\n\t\t} else {\n\t\t\tdom.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t} else if (\n\t\tname !== 'list' &&\n\t\tname !== 'tagName' &&\n\t\t// HTMLButtonElement.form and HTMLInputElement.form are read-only but can be set using\n\t\t// setAttribute\n\t\tname !== 'form' &&\n\t\tname !== 'type' &&\n\t\tname !== 'size' &&\n\t\t!isSvg &&\n\t\tname in dom\n\t) {\n\t\tdom[name] = value == null ? '' : value;\n\t} else if (typeof value != 'function' && name !== 'dangerouslySetInnerHTML') {\n\t\tif (name !== (name = name.replace(/^xlink:?/, ''))) {\n\t\t\tif (value == null || value === false) {\n\t\t\t\tdom.removeAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase()\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tdom.setAttributeNS(\n\t\t\t\t\t'http://www.w3.org/1999/xlink',\n\t\t\t\t\tname.toLowerCase(),\n\t\t\t\t\tvalue\n\t\t\t\t);\n\t\t\t}\n\t\t} else if (\n\t\t\tvalue == null ||\n\t\t\t(value === false &&\n\t\t\t\t// ARIA-attributes have a different notion of boolean values.\n\t\t\t\t// The value `false` is different from the attribute not\n\t\t\t\t// existing on the DOM, so we can't remove it. For non-boolean\n\t\t\t\t// ARIA-attributes we could treat false as a removal, but the\n\t\t\t\t// amount of exceptions would cost us too many bytes. On top of\n\t\t\t\t// that other VDOM frameworks also always stringify `false`.\n\t\t\t\t!/^ar/.test(name))\n\t\t) {\n\t\t\tdom.removeAttribute(name);\n\t\t} else {\n\t\t\tdom.setAttribute(name, value);\n\t\t}\n\t}\n}\n\n/**\n * Proxy an event to hooked event handlers\n * @param {Event} e The event object from the browser\n * @private\n */\nfunction eventProxy(e) {\n\tthis._listeners[e.type](options.event ? options.event(e) : e);\n}\n","import { EMPTY_OBJ, EMPTY_ARR } from '../constants';\nimport { Component } from '../component';\nimport { Fragment } from '../create-element';\nimport { diffChildren } from './children';\nimport { diffProps, setProperty } from './props';\nimport { assign, removeNode } from '../util';\nimport options from '../options';\n\n/**\n * Diff two virtual nodes and apply proper changes to the DOM\n * @param {import('../internal').PreactElement} parentDom The parent of the DOM element\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object. Modified by getChildContext\n * @param {boolean} isSvg Whether or not this element is an SVG node\n * @param {Array} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {Element | Text} oldDom The current attached DOM\n * element any new dom elements should be placed around. Likely `null` on first\n * render (except when hydrating). Can be a sibling DOM element when diffing\n * Fragments that have siblings. In most cases, it starts out as `oldChildren[0]._dom`.\n * @param {boolean} [isHydrating] Whether or not we are in hydration\n */\nexport function diff(\n\tparentDom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\toldDom,\n\tisHydrating\n) {\n\tlet tmp,\n\t\tnewType = newVNode.type;\n\n\t// When passing through createElement it assigns the object\n\t// constructor as undefined. This to prevent JSON-injection.\n\tif (newVNode.constructor !== undefined) return null;\n\n\tif ((tmp = options._diff)) tmp(newVNode);\n\n\ttry {\n\t\touter: if (typeof newType == 'function') {\n\t\t\tlet c, isNew, oldProps, oldState, snapshot, clearProcessingException;\n\t\t\tlet newProps = newVNode.props;\n\n\t\t\t// Necessary for createContext api. Setting this property will pass\n\t\t\t// the context value as `this.context` just for this component.\n\t\t\ttmp = newType.contextType;\n\t\t\tlet provider = tmp && globalContext[tmp._id];\n\t\t\tlet componentContext = tmp\n\t\t\t\t? provider\n\t\t\t\t\t? provider.props.value\n\t\t\t\t\t: tmp._defaultValue\n\t\t\t\t: globalContext;\n\n\t\t\t// Get component and set it to `c`\n\t\t\tif (oldVNode._component) {\n\t\t\t\tc = newVNode._component = oldVNode._component;\n\t\t\t\tclearProcessingException = c._processingException = c._pendingError;\n\t\t\t} else {\n\t\t\t\t// Instantiate the new component\n\t\t\t\tif ('prototype' in newType && newType.prototype.render) {\n\t\t\t\t\tnewVNode._component = c = new newType(newProps, componentContext); // eslint-disable-line new-cap\n\t\t\t\t} else {\n\t\t\t\t\tnewVNode._component = c = new Component(newProps, componentContext);\n\t\t\t\t\tc.constructor = newType;\n\t\t\t\t\tc.render = doRender;\n\t\t\t\t}\n\t\t\t\tif (provider) provider.sub(c);\n\n\t\t\t\tc.props = newProps;\n\t\t\t\tif (!c.state) c.state = {};\n\t\t\t\tc.context = componentContext;\n\t\t\t\tc._globalContext = globalContext;\n\t\t\t\tisNew = c._dirty = true;\n\t\t\t\tc._renderCallbacks = [];\n\t\t\t}\n\n\t\t\t// Invoke getDerivedStateFromProps\n\t\t\tif (c._nextState == null) {\n\t\t\t\tc._nextState = c.state;\n\t\t\t}\n\t\t\tif (newType.getDerivedStateFromProps != null) {\n\t\t\t\tif (c._nextState == c.state) {\n\t\t\t\t\tc._nextState = assign({}, c._nextState);\n\t\t\t\t}\n\n\t\t\t\tassign(\n\t\t\t\t\tc._nextState,\n\t\t\t\t\tnewType.getDerivedStateFromProps(newProps, c._nextState)\n\t\t\t\t);\n\t\t\t}\n\n\t\t\toldProps = c.props;\n\t\t\toldState = c.state;\n\n\t\t\t// Invoke pre-render lifecycle methods\n\t\t\tif (isNew) {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tc.componentWillMount != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillMount();\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidMount != null) {\n\t\t\t\t\tc._renderCallbacks.push(c.componentDidMount);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (\n\t\t\t\t\tnewType.getDerivedStateFromProps == null &&\n\t\t\t\t\tnewProps !== oldProps &&\n\t\t\t\t\tc.componentWillReceiveProps != null\n\t\t\t\t) {\n\t\t\t\t\tc.componentWillReceiveProps(newProps, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t(!c._force &&\n\t\t\t\t\t\tc.shouldComponentUpdate != null &&\n\t\t\t\t\t\tc.shouldComponentUpdate(\n\t\t\t\t\t\t\tnewProps,\n\t\t\t\t\t\t\tc._nextState,\n\t\t\t\t\t\t\tcomponentContext\n\t\t\t\t\t\t) === false) ||\n\t\t\t\t\t(newVNode._original === oldVNode._original && !c._processingException)\n\t\t\t\t) {\n\t\t\t\t\tc.props = newProps;\n\t\t\t\t\tc.state = c._nextState;\n\t\t\t\t\t// More info about this here: https://gist.github.com/JoviDeCroock/bec5f2ce93544d2e6070ef8e0036e4e8\n\t\t\t\t\tif (newVNode._original !== oldVNode._original) c._dirty = false;\n\t\t\t\t\tc._vnode = newVNode;\n\t\t\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t\t\t\tnewVNode._children = oldVNode._children;\n\t\t\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\t\t\tcommitQueue.push(c);\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (tmp = 0; tmp < newVNode._children.length; tmp++) {\n\t\t\t\t\t\tif (newVNode._children[tmp]) {\n\t\t\t\t\t\t\tnewVNode._children[tmp]._parent = newVNode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\n\t\t\t\tif (c.componentWillUpdate != null) {\n\t\t\t\t\tc.componentWillUpdate(newProps, c._nextState, componentContext);\n\t\t\t\t}\n\n\t\t\t\tif (c.componentDidUpdate != null) {\n\t\t\t\t\tc._renderCallbacks.push(() => {\n\t\t\t\t\t\tc.componentDidUpdate(oldProps, oldState, snapshot);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tc.context = componentContext;\n\t\t\tc.props = newProps;\n\t\t\tc.state = c._nextState;\n\n\t\t\tif ((tmp = options._render)) tmp(newVNode);\n\n\t\t\tc._dirty = false;\n\t\t\tc._vnode = newVNode;\n\t\t\tc._parentDom = parentDom;\n\n\t\t\ttmp = c.render(c.props, c.state, c.context);\n\t\t\tlet isTopLevelFragment =\n\t\t\t\ttmp != null && tmp.type == Fragment && tmp.key == null;\n\t\t\tnewVNode._children = isTopLevelFragment\n\t\t\t\t? tmp.props.children\n\t\t\t\t: Array.isArray(tmp)\n\t\t\t\t? tmp\n\t\t\t\t: [tmp];\n\n\t\t\tif (c.getChildContext != null) {\n\t\t\t\tglobalContext = assign(assign({}, globalContext), c.getChildContext());\n\t\t\t}\n\n\t\t\tif (!isNew && c.getSnapshotBeforeUpdate != null) {\n\t\t\t\tsnapshot = c.getSnapshotBeforeUpdate(oldProps, oldState);\n\t\t\t}\n\n\t\t\tdiffChildren(\n\t\t\t\tparentDom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\toldDom,\n\t\t\t\tisHydrating\n\t\t\t);\n\n\t\t\tc.base = newVNode._dom;\n\n\t\t\tif (c._renderCallbacks.length) {\n\t\t\t\tcommitQueue.push(c);\n\t\t\t}\n\n\t\t\tif (clearProcessingException) {\n\t\t\t\tc._pendingError = c._processingException = null;\n\t\t\t}\n\n\t\t\tc._force = false;\n\t\t} else if (\n\t\t\texcessDomChildren == null &&\n\t\t\tnewVNode._original === oldVNode._original\n\t\t) {\n\t\t\tnewVNode._children = oldVNode._children;\n\t\t\tnewVNode._dom = oldVNode._dom;\n\t\t} else {\n\t\t\tnewVNode._dom = diffElementNodes(\n\t\t\t\toldVNode._dom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tisSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\tif ((tmp = options.diffed)) tmp(newVNode);\n\t} catch (e) {\n\t\tnewVNode._original = null;\n\t\toptions._catchError(e, newVNode, oldVNode);\n\t}\n\n\treturn newVNode._dom;\n}\n\n/**\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {import('../internal').VNode} root\n */\nexport function commitRoot(commitQueue, root) {\n\tif (options._commit) options._commit(root, commitQueue);\n\n\tcommitQueue.some(c => {\n\t\ttry {\n\t\t\tcommitQueue = c._renderCallbacks;\n\t\t\tc._renderCallbacks = [];\n\t\t\tcommitQueue.some(cb => {\n\t\t\t\tcb.call(c);\n\t\t\t});\n\t\t} catch (e) {\n\t\t\toptions._catchError(e, c._vnode);\n\t\t}\n\t});\n}\n\n/**\n * Diff two virtual nodes representing DOM element\n * @param {import('../internal').PreactElement} dom The DOM element representing\n * the virtual nodes being diffed\n * @param {import('../internal').VNode} newVNode The new virtual node\n * @param {import('../internal').VNode} oldVNode The old virtual node\n * @param {object} globalContext The current context object\n * @param {boolean} isSvg Whether or not this DOM node is an SVG node\n * @param {*} excessDomChildren\n * @param {Array} commitQueue List of components\n * which have callbacks to invoke in commitRoot\n * @param {boolean} isHydrating Whether or not we are in hydration\n * @returns {import('../internal').PreactElement}\n */\nfunction diffElementNodes(\n\tdom,\n\tnewVNode,\n\toldVNode,\n\tglobalContext,\n\tisSvg,\n\texcessDomChildren,\n\tcommitQueue,\n\tisHydrating\n) {\n\tlet i;\n\tlet oldProps = oldVNode.props;\n\tlet newProps = newVNode.props;\n\n\t// Tracks entering and exiting SVG namespace when descending through the tree.\n\tisSvg = newVNode.type === 'svg' || isSvg;\n\n\tif (excessDomChildren != null) {\n\t\tfor (i = 0; i < excessDomChildren.length; i++) {\n\t\t\tconst child = excessDomChildren[i];\n\n\t\t\t// if newVNode matches an element in excessDomChildren or the `dom`\n\t\t\t// argument matches an element in excessDomChildren, remove it from\n\t\t\t// excessDomChildren so it isn't later removed in diffChildren\n\t\t\tif (\n\t\t\t\tchild != null &&\n\t\t\t\t((newVNode.type === null\n\t\t\t\t\t? child.nodeType === 3\n\t\t\t\t\t: child.localName === newVNode.type) ||\n\t\t\t\t\tdom == child)\n\t\t\t) {\n\t\t\t\tdom = child;\n\t\t\t\texcessDomChildren[i] = null;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (dom == null) {\n\t\tif (newVNode.type === null) {\n\t\t\treturn document.createTextNode(newProps);\n\t\t}\n\n\t\tdom = isSvg\n\t\t\t? document.createElementNS('http://www.w3.org/2000/svg', newVNode.type)\n\t\t\t: document.createElement(\n\t\t\t\t\tnewVNode.type,\n\t\t\t\t\tnewProps.is && { is: newProps.is }\n\t\t\t );\n\t\t// we created a new parent, so none of the previously attached children can be reused:\n\t\texcessDomChildren = null;\n\t\t// we are creating a new node, so we can assume this is a new subtree (in case we are hydrating), this deopts the hydrate\n\t\tisHydrating = false;\n\t}\n\n\tif (newVNode.type === null) {\n\t\tif (oldProps !== newProps && dom.data != newProps) {\n\t\t\tdom.data = newProps;\n\t\t}\n\t} else {\n\t\tif (excessDomChildren != null) {\n\t\t\texcessDomChildren = EMPTY_ARR.slice.call(dom.childNodes);\n\t\t}\n\n\t\toldProps = oldVNode.props || EMPTY_OBJ;\n\n\t\tlet oldHtml = oldProps.dangerouslySetInnerHTML;\n\t\tlet newHtml = newProps.dangerouslySetInnerHTML;\n\n\t\t// During hydration, props are not diffed at all (including dangerouslySetInnerHTML)\n\t\t// @TODO we should warn in debug mode when props don't match here.\n\t\tif (!isHydrating) {\n\t\t\tif (oldProps === EMPTY_OBJ) {\n\t\t\t\toldProps = {};\n\t\t\t\tfor (let i = 0; i < dom.attributes.length; i++) {\n\t\t\t\t\toldProps[dom.attributes[i].name] = dom.attributes[i].value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (newHtml || oldHtml) {\n\t\t\t\t// Avoid re-applying the same '__html' if it did not changed between re-render\n\t\t\t\tif (!newHtml || !oldHtml || newHtml.__html != oldHtml.__html) {\n\t\t\t\t\tdom.innerHTML = (newHtml && newHtml.__html) || '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tdiffProps(dom, newProps, oldProps, isSvg, isHydrating);\n\n\t\t// If the new vnode didn't have dangerouslySetInnerHTML, diff its children\n\t\tif (newHtml) {\n\t\t\tnewVNode._children = [];\n\t\t} else {\n\t\t\tnewVNode._children = newVNode.props.children;\n\t\t\tdiffChildren(\n\t\t\t\tdom,\n\t\t\t\tnewVNode,\n\t\t\t\toldVNode,\n\t\t\t\tglobalContext,\n\t\t\t\tnewVNode.type === 'foreignObject' ? false : isSvg,\n\t\t\t\texcessDomChildren,\n\t\t\t\tcommitQueue,\n\t\t\t\tEMPTY_OBJ,\n\t\t\t\tisHydrating\n\t\t\t);\n\t\t}\n\n\t\t// (as above, don't diff props during hydration)\n\t\tif (!isHydrating) {\n\t\t\tif (\n\t\t\t\t'value' in newProps &&\n\t\t\t\t(i = newProps.value) !== undefined &&\n\t\t\t\ti !== dom.value\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'value', i, oldProps.value, false);\n\t\t\t}\n\t\t\tif (\n\t\t\t\t'checked' in newProps &&\n\t\t\t\t(i = newProps.checked) !== undefined &&\n\t\t\t\ti !== dom.checked\n\t\t\t) {\n\t\t\t\tsetProperty(dom, 'checked', i, oldProps.checked, false);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn dom;\n}\n\n/**\n * Invoke or update a ref, depending on whether it is a function or object ref.\n * @param {object|function} ref\n * @param {any} value\n * @param {import('../internal').VNode} vnode\n */\nexport function applyRef(ref, value, vnode) {\n\ttry {\n\t\tif (typeof ref == 'function') ref(value);\n\t\telse ref.current = value;\n\t} catch (e) {\n\t\toptions._catchError(e, vnode);\n\t}\n}\n\n/**\n * Unmount a virtual node from the tree and apply DOM changes\n * @param {import('../internal').VNode} vnode The virtual node to unmount\n * @param {import('../internal').VNode} parentVNode The parent of the VNode that\n * initiated the unmount\n * @param {boolean} [skipRemove] Flag that indicates that a parent node of the\n * current element is already detached from the DOM.\n */\nexport function unmount(vnode, parentVNode, skipRemove) {\n\tlet r;\n\tif (options.unmount) options.unmount(vnode);\n\n\tif ((r = vnode.ref)) {\n\t\tif (!r.current || r.current === vnode._dom) applyRef(r, null, parentVNode);\n\t}\n\n\tlet dom;\n\tif (!skipRemove && typeof vnode.type != 'function') {\n\t\tskipRemove = (dom = vnode._dom) != null;\n\t}\n\n\t// Must be set to `undefined` to properly clean up `_nextDom`\n\t// for which `null` is a valid value. See comment in `create-element.js`\n\tvnode._dom = vnode._nextDom = undefined;\n\n\tif ((r = vnode._component) != null) {\n\t\tif (r.componentWillUnmount) {\n\t\t\ttry {\n\t\t\t\tr.componentWillUnmount();\n\t\t\t} catch (e) {\n\t\t\t\toptions._catchError(e, parentVNode);\n\t\t\t}\n\t\t}\n\n\t\tr.base = r._parentDom = null;\n\t}\n\n\tif ((r = vnode._children)) {\n\t\tfor (let i = 0; i < r.length; i++) {\n\t\t\tif (r[i]) unmount(r[i], parentVNode, skipRemove);\n\t\t}\n\t}\n\n\tif (dom != null) removeNode(dom);\n}\n\n/** The `.render()` method for a PFC backing instance. */\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n","import { assign } from './util';\nimport { EMPTY_ARR } from './constants';\nimport { createVNode } from './create-element';\n\n/**\n * Clones the given VNode, optionally adding attributes/props and replacing its children.\n * @param {import('./internal').VNode} vnode The virtual DOM element to clone\n * @param {object} props Attributes/props to add when cloning\n * @param {Array} rest Any additional arguments will be used as replacement children.\n * @returns {import('./internal').VNode}\n */\nexport function cloneElement(vnode, props) {\n\tprops = assign(assign({}, vnode.props), props);\n\tif (arguments.length > 2) props.children = EMPTY_ARR.slice.call(arguments, 2);\n\tlet normalizedProps = {};\n\tfor (const i in props) {\n\t\tif (i !== 'key' && i !== 'ref') normalizedProps[i] = props[i];\n\t}\n\n\treturn createVNode(\n\t\tvnode.type,\n\t\tnormalizedProps,\n\t\tprops.key || vnode.key,\n\t\tprops.ref || vnode.ref,\n\t\tnull\n\t);\n}\n","import { enqueueRender } from '../component';\n\n/**\n * Find the closest error boundary to a thrown error and call it\n * @param {object} error The thrown value\n * @param {import('../internal').VNode} vnode The vnode that threw\n * the error that was caught (except for unmounting when this parameter\n * is the highest parent that was being unmounted)\n */\nexport function _catchError(error, vnode) {\n\t/** @type {import('../internal').Component} */\n\tlet component, hasCaught;\n\n\tfor (; (vnode = vnode._parent); ) {\n\t\tif ((component = vnode._component) && !component._processingException) {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tcomponent.constructor &&\n\t\t\t\t\tcomponent.constructor.getDerivedStateFromError != null\n\t\t\t\t) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.setState(\n\t\t\t\t\t\tcomponent.constructor.getDerivedStateFromError(error)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (component.componentDidCatch != null) {\n\t\t\t\t\thasCaught = true;\n\t\t\t\t\tcomponent.componentDidCatch(error);\n\t\t\t\t}\n\n\t\t\t\tif (hasCaught)\n\t\t\t\t\treturn enqueueRender((component._pendingError = component));\n\t\t\t} catch (e) {\n\t\t\t\terror = e;\n\t\t\t}\n\t\t}\n\t}\n\n\tthrow error;\n}\n","class NetworkMonitor {\n constructor() {\n this._eventEmitters = [];\n if (typeof window !== \"undefined\" && typeof window.addEventListener !== \"undefined\") {\n window.addEventListener(\"online\", () => this.trigger(\"online\"));\n window.addEventListener(\"offline\", () => this.trigger(\"offline\"));\n }\n }\n on(event, callback) {\n this._eventEmitters.push({\n event,\n callback,\n });\n }\n trigger(event) {\n let eventEmitters = [];\n if (event) {\n eventEmitters = this._eventEmitters.filter((eventEmitter) => eventEmitter.event === event);\n }\n eventEmitters.forEach((eventEmitter) => {\n eventEmitter.callback();\n });\n }\n}\nexport default NetworkMonitor;\n//# sourceMappingURL=network.js.map","'use strict';\n\nmodule.exports = function () {\n throw new Error(\n 'ws does not work in the browser. Browser clients must use the native ' +\n 'WebSocket object'\n );\n};\n","import BN from \"bn.js\";\nimport * as encoding from \"@walletconnect/encoding\";\nexport function convertArrayBufferToBuffer(arrBuf) {\n return encoding.arrayToBuffer(new Uint8Array(arrBuf));\n}\nexport function convertArrayBufferToUtf8(arrBuf) {\n return encoding.arrayToUtf8(new Uint8Array(arrBuf));\n}\nexport function convertArrayBufferToHex(arrBuf, noPrefix) {\n return encoding.arrayToHex(new Uint8Array(arrBuf), !noPrefix);\n}\nexport function convertArrayBufferToNumber(arrBuf) {\n return encoding.arrayToNumber(new Uint8Array(arrBuf));\n}\nexport function concatArrayBuffers(...args) {\n return encoding.hexToArray(args.map(b => encoding.arrayToHex(new Uint8Array(b))).join(\"\")).buffer;\n}\nexport function convertBufferToArrayBuffer(buf) {\n return encoding.bufferToArray(buf).buffer;\n}\nexport function convertBufferToUtf8(buf) {\n return encoding.bufferToUtf8(buf);\n}\nexport function convertBufferToHex(buf, noPrefix) {\n return encoding.bufferToHex(buf, !noPrefix);\n}\nexport function convertBufferToNumber(buf) {\n return encoding.bufferToNumber(buf);\n}\nexport function concatBuffers(...args) {\n return encoding.concatBuffers(...args);\n}\nexport function convertUtf8ToArrayBuffer(utf8) {\n return encoding.utf8ToArray(utf8).buffer;\n}\nexport function convertUtf8ToBuffer(utf8) {\n return encoding.utf8ToBuffer(utf8);\n}\nexport function convertUtf8ToHex(utf8, noPrefix) {\n return encoding.utf8ToHex(utf8, !noPrefix);\n}\nexport function convertUtf8ToNumber(utf8) {\n return new BN(utf8, 10).toNumber();\n}\nexport function convertHexToBuffer(hex) {\n return encoding.hexToBuffer(hex);\n}\nexport function convertHexToArrayBuffer(hex) {\n return encoding.hexToArray(hex).buffer;\n}\nexport function convertHexToUtf8(hex) {\n return encoding.hexToUtf8(hex);\n}\nexport function convertHexToNumber(hex) {\n return new BN(encoding.removeHexPrefix(hex), \"hex\").toNumber();\n}\nexport function convertNumberToBuffer(num) {\n return encoding.numberToBuffer(num);\n}\nexport function convertNumberToArrayBuffer(num) {\n return encoding.numberToArray(num).buffer;\n}\nexport function convertNumberToUtf8(num) {\n return new BN(num).toString();\n}\nexport function convertNumberToHex(num, noPrefix) {\n const hex = encoding.removeHexPrefix(encoding.sanitizeHex(new BN(num).toString(16)));\n return noPrefix ? hex : encoding.addHexPrefix(hex);\n}\n//# sourceMappingURL=encoding.js.map","import { keccak_256 } from \"js-sha3\";\nimport { removeHexPrefix, addHexPrefix } from \"@walletconnect/encoding\";\nimport { convertUtf8ToHex, convertNumberToHex, convertUtf8ToBuffer } from \"./encoding\";\nimport { sanitizeHex, removeHexLeadingZeros } from \"./misc\";\nimport { isEmptyArray, isHexString, isEmptyString } from \"./validators\";\nexport function toChecksumAddress(address) {\n address = removeHexPrefix(address.toLowerCase());\n const hash = removeHexPrefix(keccak_256(convertUtf8ToBuffer(address)));\n let checksum = \"\";\n for (let i = 0; i < address.length; i++) {\n if (parseInt(hash[i], 16) > 7) {\n checksum += address[i].toUpperCase();\n }\n else {\n checksum += address[i];\n }\n }\n return addHexPrefix(checksum);\n}\nexport const isValidAddress = (address) => {\n if (!address) {\n return false;\n }\n else if (address.toLowerCase().substring(0, 2) !== \"0x\") {\n return false;\n }\n else if (!/^(0x)?[0-9a-f]{40}$/i.test(address)) {\n return false;\n }\n else if (/^(0x)?[0-9a-f]{40}$/.test(address) || /^(0x)?[0-9A-F]{40}$/.test(address)) {\n return true;\n }\n else {\n return address === toChecksumAddress(address);\n }\n};\nexport function parsePersonalSign(params) {\n if (!isEmptyArray(params) && !isHexString(params[0])) {\n params[0] = convertUtf8ToHex(params[0]);\n }\n return params;\n}\nexport function parseTransactionData(txData) {\n if (typeof txData.type !== \"undefined\" && txData.type !== \"0\")\n return txData;\n if (typeof txData.from === \"undefined\" || !isValidAddress(txData.from)) {\n throw new Error(`Transaction object must include a valid 'from' value.`);\n }\n function parseHexValues(value) {\n let result = value;\n if (typeof value === \"number\" || (typeof value === \"string\" && !isEmptyString(value))) {\n if (!isHexString(value)) {\n result = convertNumberToHex(value);\n }\n else if (typeof value === \"string\") {\n result = sanitizeHex(value);\n }\n }\n if (typeof result === \"string\") {\n result = removeHexLeadingZeros(result);\n }\n return result;\n }\n const txDataRPC = {\n from: sanitizeHex(txData.from),\n to: typeof txData.to === \"undefined\" ? \"\" : sanitizeHex(txData.to),\n gasPrice: typeof txData.gasPrice === \"undefined\" ? \"\" : parseHexValues(txData.gasPrice),\n gas: typeof txData.gas === \"undefined\"\n ? typeof txData.gasLimit === \"undefined\"\n ? \"\"\n : parseHexValues(txData.gasLimit)\n : parseHexValues(txData.gas),\n value: typeof txData.value === \"undefined\" ? \"\" : parseHexValues(txData.value),\n nonce: typeof txData.nonce === \"undefined\" ? \"\" : parseHexValues(txData.nonce),\n data: typeof txData.data === \"undefined\" ? \"\" : sanitizeHex(txData.data) || \"0x\",\n };\n const prunable = [\"gasPrice\", \"gas\", \"value\", \"nonce\"];\n Object.keys(txDataRPC).forEach((key) => {\n if (!txDataRPC[key].trim().length && prunable.includes(key)) {\n delete txDataRPC[key];\n }\n });\n return txDataRPC;\n}\n//# sourceMappingURL=ethereum.js.map","export function promisify(originalFn, thisArg) {\n const promisifiedFunction = async (...callArgs) => {\n return new Promise((resolve, reject) => {\n const callback = (err, data) => {\n if (err === null || typeof err === \"undefined\") {\n reject(err);\n }\n resolve(data);\n };\n originalFn.apply(thisArg, [...callArgs, callback]);\n });\n };\n return promisifiedFunction;\n}\nexport function formatRpcError(error) {\n const message = error.message || \"Failed or Rejected Request\";\n let code = -32000;\n if (error && !error.code) {\n switch (message) {\n case \"Parse error\":\n code = -32700;\n break;\n case \"Invalid request\":\n code = -32600;\n break;\n case \"Method not found\":\n code = -32601;\n break;\n case \"Invalid params\":\n code = -32602;\n break;\n case \"Internal error\":\n code = -32603;\n break;\n default:\n code = -32000;\n break;\n }\n }\n const result = {\n code,\n message,\n };\n return result;\n}\n//# sourceMappingURL=payload.js.map","import { parseQueryString } from \"./url\";\nexport function isWalletConnectSession(object) {\n return typeof object.bridge !== \"undefined\";\n}\nexport function parseWalletConnectUri(str) {\n const pathStart = str.indexOf(\":\");\n const pathEnd = str.indexOf(\"?\") !== -1 ? str.indexOf(\"?\") : undefined;\n const protocol = str.substring(0, pathStart);\n const path = str.substring(pathStart + 1, pathEnd);\n function parseRequiredParams(path) {\n const separator = \"@\";\n const values = path.split(separator);\n const requiredParams = {\n handshakeTopic: values[0],\n version: parseInt(values[1], 10),\n };\n return requiredParams;\n }\n const requiredParams = parseRequiredParams(path);\n const queryString = typeof pathEnd !== \"undefined\" ? str.substr(pathEnd) : \"\";\n function parseQueryParams(queryString) {\n const result = parseQueryString(queryString);\n const parameters = {\n key: result.key || \"\",\n bridge: result.bridge || \"\",\n };\n return parameters;\n }\n const queryParams = parseQueryParams(queryString);\n const result = Object.assign(Object.assign({ protocol }, requiredParams), queryParams);\n return result;\n}\n//# sourceMappingURL=session.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 Buffer = require('buffer').Buffer;\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 }\n\n if (base === 16) {\n this._parseHex(number, start);\n } else {\n this._parseBase(number, base, start);\n }\n\n if (number[0] === '-') {\n this.negative = 1;\n }\n\n this.strip();\n\n if (endian !== 'le') return;\n\n this._initArray(this.toArray(), base, endian);\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 parseHex (str, start, end) {\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 <<= 4;\n\n // 'a' - 'f'\n if (c >= 49 && c <= 54) {\n r |= c - 49 + 0xa;\n\n // 'A' - 'F'\n } else if (c >= 17 && c <= 22) {\n r |= c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r |= c & 0xf;\n }\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start) {\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 var j, w;\n // Scan 24-bit chunks and add them to the number\n var off = 0;\n for (i = number.length - 6, j = 0; i >= start; i -= 6) {\n w = parseHex(number, i, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n // NOTE: `0x3fffff` is intentional here, 26bits max shift + 24bit hex limb\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n if (i + 6 !== start) {\n w = parseHex(number, start, i + 6);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] |= w >>> (26 - off) & 0x3fffff;\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\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 if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\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 r.strip();\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\n(function(root) {\n\n function checkInt(value) {\n return (parseInt(value) === value);\n }\n\n function checkInts(arrayish) {\n if (!checkInt(arrayish.length)) { return false; }\n\n for (var i = 0; i < arrayish.length; i++) {\n if (!checkInt(arrayish[i]) || arrayish[i] < 0 || arrayish[i] > 255) {\n return false;\n }\n }\n\n return true;\n }\n\n function coerceArray(arg, copy) {\n\n // ArrayBuffer view\n if (arg.buffer && ArrayBuffer.isView(arg) && arg.name === 'Uint8Array') {\n\n if (copy) {\n if (arg.slice) {\n arg = arg.slice();\n } else {\n arg = Array.prototype.slice.call(arg);\n }\n }\n\n return arg;\n }\n\n // It's an array; check it is a valid representation of a byte\n if (Array.isArray(arg)) {\n if (!checkInts(arg)) {\n throw new Error('Array contains invalid value: ' + arg);\n }\n\n return new Uint8Array(arg);\n }\n\n // Something else, but behaves like an array (maybe a Buffer? Arguments?)\n if (checkInt(arg.length) && checkInts(arg)) {\n return new Uint8Array(arg);\n }\n\n throw new Error('unsupported array-like object');\n }\n\n function createArray(length) {\n return new Uint8Array(length);\n }\n\n function copyArray(sourceArray, targetArray, targetStart, sourceStart, sourceEnd) {\n if (sourceStart != null || sourceEnd != null) {\n if (sourceArray.slice) {\n sourceArray = sourceArray.slice(sourceStart, sourceEnd);\n } else {\n sourceArray = Array.prototype.slice.call(sourceArray, sourceStart, sourceEnd);\n }\n }\n targetArray.set(sourceArray, targetStart);\n }\n\n\n\n var convertUtf8 = (function() {\n function toBytes(text) {\n var result = [], i = 0;\n text = encodeURI(text);\n while (i < text.length) {\n var c = text.charCodeAt(i++);\n\n // if it is a % sign, encode the following 2 bytes as a hex value\n if (c === 37) {\n result.push(parseInt(text.substr(i, 2), 16))\n i += 2;\n\n // otherwise, just the actual byte\n } else {\n result.push(c)\n }\n }\n\n return coerceArray(result);\n }\n\n function fromBytes(bytes) {\n var result = [], i = 0;\n\n while (i < bytes.length) {\n var c = bytes[i];\n\n if (c < 128) {\n result.push(String.fromCharCode(c));\n i++;\n } else if (c > 191 && c < 224) {\n result.push(String.fromCharCode(((c & 0x1f) << 6) | (bytes[i + 1] & 0x3f)));\n i += 2;\n } else {\n result.push(String.fromCharCode(((c & 0x0f) << 12) | ((bytes[i + 1] & 0x3f) << 6) | (bytes[i + 2] & 0x3f)));\n i += 3;\n }\n }\n\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n var convertHex = (function() {\n function toBytes(text) {\n var result = [];\n for (var i = 0; i < text.length; i += 2) {\n result.push(parseInt(text.substr(i, 2), 16));\n }\n\n return result;\n }\n\n // http://ixti.net/development/javascript/2011/11/11/base64-encodedecode-of-utf8-in-browser-with-js.html\n var Hex = '0123456789abcdef';\n\n function fromBytes(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i++) {\n var v = bytes[i];\n result.push(Hex[(v & 0xf0) >> 4] + Hex[v & 0x0f]);\n }\n return result.join('');\n }\n\n return {\n toBytes: toBytes,\n fromBytes: fromBytes,\n }\n })();\n\n\n // Number of rounds by keysize\n var numberOfRounds = {16: 10, 24: 12, 32: 14}\n\n // Round constant words\n var rcon = [0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36, 0x6c, 0xd8, 0xab, 0x4d, 0x9a, 0x2f, 0x5e, 0xbc, 0x63, 0xc6, 0x97, 0x35, 0x6a, 0xd4, 0xb3, 0x7d, 0xfa, 0xef, 0xc5, 0x91];\n\n // S-box and Inverse S-box (S is for Substitution)\n var S = [0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76, 0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0, 0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15, 0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75, 0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84, 0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf, 0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8, 0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2, 0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73, 0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb, 0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79, 0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08, 0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a, 0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e, 0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf, 0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16];\n var Si =[0x52, 0x09, 0x6a, 0xd5, 0x30, 0x36, 0xa5, 0x38, 0xbf, 0x40, 0xa3, 0x9e, 0x81, 0xf3, 0xd7, 0xfb, 0x7c, 0xe3, 0x39, 0x82, 0x9b, 0x2f, 0xff, 0x87, 0x34, 0x8e, 0x43, 0x44, 0xc4, 0xde, 0xe9, 0xcb, 0x54, 0x7b, 0x94, 0x32, 0xa6, 0xc2, 0x23, 0x3d, 0xee, 0x4c, 0x95, 0x0b, 0x42, 0xfa, 0xc3, 0x4e, 0x08, 0x2e, 0xa1, 0x66, 0x28, 0xd9, 0x24, 0xb2, 0x76, 0x5b, 0xa2, 0x49, 0x6d, 0x8b, 0xd1, 0x25, 0x72, 0xf8, 0xf6, 0x64, 0x86, 0x68, 0x98, 0x16, 0xd4, 0xa4, 0x5c, 0xcc, 0x5d, 0x65, 0xb6, 0x92, 0x6c, 0x70, 0x48, 0x50, 0xfd, 0xed, 0xb9, 0xda, 0x5e, 0x15, 0x46, 0x57, 0xa7, 0x8d, 0x9d, 0x84, 0x90, 0xd8, 0xab, 0x00, 0x8c, 0xbc, 0xd3, 0x0a, 0xf7, 0xe4, 0x58, 0x05, 0xb8, 0xb3, 0x45, 0x06, 0xd0, 0x2c, 0x1e, 0x8f, 0xca, 0x3f, 0x0f, 0x02, 0xc1, 0xaf, 0xbd, 0x03, 0x01, 0x13, 0x8a, 0x6b, 0x3a, 0x91, 0x11, 0x41, 0x4f, 0x67, 0xdc, 0xea, 0x97, 0xf2, 0xcf, 0xce, 0xf0, 0xb4, 0xe6, 0x73, 0x96, 0xac, 0x74, 0x22, 0xe7, 0xad, 0x35, 0x85, 0xe2, 0xf9, 0x37, 0xe8, 0x1c, 0x75, 0xdf, 0x6e, 0x47, 0xf1, 0x1a, 0x71, 0x1d, 0x29, 0xc5, 0x89, 0x6f, 0xb7, 0x62, 0x0e, 0xaa, 0x18, 0xbe, 0x1b, 0xfc, 0x56, 0x3e, 0x4b, 0xc6, 0xd2, 0x79, 0x20, 0x9a, 0xdb, 0xc0, 0xfe, 0x78, 0xcd, 0x5a, 0xf4, 0x1f, 0xdd, 0xa8, 0x33, 0x88, 0x07, 0xc7, 0x31, 0xb1, 0x12, 0x10, 0x59, 0x27, 0x80, 0xec, 0x5f, 0x60, 0x51, 0x7f, 0xa9, 0x19, 0xb5, 0x4a, 0x0d, 0x2d, 0xe5, 0x7a, 0x9f, 0x93, 0xc9, 0x9c, 0xef, 0xa0, 0xe0, 0x3b, 0x4d, 0xae, 0x2a, 0xf5, 0xb0, 0xc8, 0xeb, 0xbb, 0x3c, 0x83, 0x53, 0x99, 0x61, 0x17, 0x2b, 0x04, 0x7e, 0xba, 0x77, 0xd6, 0x26, 0xe1, 0x69, 0x14, 0x63, 0x55, 0x21, 0x0c, 0x7d];\n\n // Transformations for encryption\n var T1 = [0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d, 0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554, 0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d, 0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a, 0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87, 0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b, 0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea, 0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b, 0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a, 0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f, 0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108, 0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f, 0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e, 0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5, 0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d, 0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f, 0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e, 0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb, 0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce, 0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497, 0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c, 0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed, 0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b, 0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a, 0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16, 0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594, 0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81, 0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3, 0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a, 0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504, 0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163, 0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d, 0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f, 0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739, 0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47, 0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395, 0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f, 0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883, 0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c, 0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76, 0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e, 0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4, 0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6, 0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b, 0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7, 0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0, 0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25, 0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818, 0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72, 0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651, 0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21, 0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85, 0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa, 0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12, 0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0, 0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9, 0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133, 0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7, 0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920, 0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a, 0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17, 0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8, 0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11, 0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a];\n var T2 = [0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b, 0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5, 0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b, 0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676, 0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d, 0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0, 0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf, 0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0, 0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626, 0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc, 0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1, 0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515, 0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3, 0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a, 0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2, 0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575, 0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a, 0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0, 0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3, 0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484, 0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded, 0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b, 0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939, 0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf, 0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb, 0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585, 0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f, 0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8, 0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f, 0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5, 0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121, 0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2, 0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec, 0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717, 0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d, 0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373, 0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc, 0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888, 0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414, 0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb, 0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a, 0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c, 0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262, 0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979, 0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d, 0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9, 0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea, 0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808, 0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e, 0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6, 0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f, 0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a, 0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666, 0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e, 0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9, 0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e, 0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111, 0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494, 0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9, 0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf, 0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d, 0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868, 0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f, 0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616];\n var T3 = [0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b, 0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5, 0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b, 0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76, 0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d, 0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0, 0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af, 0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0, 0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26, 0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc, 0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1, 0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15, 0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3, 0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a, 0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2, 0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75, 0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a, 0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0, 0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3, 0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384, 0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed, 0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b, 0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239, 0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf, 0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb, 0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185, 0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f, 0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8, 0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f, 0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5, 0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221, 0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2, 0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec, 0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17, 0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d, 0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673, 0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc, 0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88, 0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814, 0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb, 0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a, 0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c, 0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462, 0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279, 0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d, 0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9, 0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea, 0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008, 0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e, 0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6, 0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f, 0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a, 0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66, 0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e, 0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9, 0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e, 0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211, 0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394, 0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9, 0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df, 0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d, 0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068, 0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f, 0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16];\n var T4 = [0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6, 0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491, 0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56, 0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec, 0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa, 0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb, 0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45, 0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b, 0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c, 0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83, 0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9, 0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a, 0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d, 0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f, 0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf, 0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea, 0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34, 0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b, 0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d, 0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713, 0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1, 0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6, 0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72, 0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85, 0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed, 0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411, 0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe, 0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b, 0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05, 0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1, 0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342, 0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf, 0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3, 0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e, 0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a, 0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6, 0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3, 0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b, 0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28, 0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad, 0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14, 0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8, 0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4, 0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2, 0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da, 0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049, 0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf, 0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810, 0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c, 0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197, 0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e, 0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f, 0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc, 0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c, 0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069, 0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927, 0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322, 0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733, 0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9, 0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5, 0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a, 0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0, 0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e, 0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c];\n\n // Transformations for decryption\n var T5 = [0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96, 0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393, 0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25, 0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f, 0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1, 0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6, 0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da, 0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844, 0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd, 0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4, 0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45, 0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94, 0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7, 0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a, 0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5, 0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c, 0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1, 0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a, 0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75, 0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051, 0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46, 0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff, 0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77, 0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb, 0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000, 0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e, 0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927, 0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a, 0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e, 0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16, 0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d, 0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8, 0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd, 0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34, 0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163, 0xd731dcca, 0x42638510, 0x13972240, 0x84c61120, 0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d, 0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0, 0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422, 0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef, 0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36, 0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4, 0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662, 0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5, 0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3, 0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b, 0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8, 0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6, 0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6, 0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0, 0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815, 0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f, 0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df, 0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f, 0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e, 0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713, 0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89, 0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c, 0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf, 0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86, 0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f, 0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541, 0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190, 0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742];\n var T6 = [0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e, 0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303, 0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c, 0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3, 0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0, 0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9, 0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259, 0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8, 0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971, 0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a, 0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f, 0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b, 0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8, 0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab, 0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708, 0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682, 0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2, 0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe, 0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb, 0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10, 0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd, 0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015, 0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e, 0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee, 0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000, 0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72, 0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39, 0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e, 0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91, 0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a, 0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17, 0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9, 0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60, 0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e, 0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1, 0xcad731dc, 0x10426385, 0x40139722, 0x2084c611, 0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1, 0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3, 0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964, 0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390, 0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b, 0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf, 0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46, 0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af, 0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512, 0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb, 0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a, 0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8, 0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c, 0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266, 0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8, 0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6, 0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604, 0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551, 0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41, 0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647, 0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c, 0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1, 0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737, 0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db, 0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340, 0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95, 0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1, 0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857];\n var T7 = [0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27, 0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3, 0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502, 0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562, 0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe, 0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3, 0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552, 0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9, 0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9, 0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce, 0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253, 0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908, 0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b, 0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655, 0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337, 0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16, 0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69, 0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6, 0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6, 0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e, 0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6, 0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050, 0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9, 0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8, 0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000, 0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a, 0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d, 0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436, 0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b, 0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12, 0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b, 0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e, 0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f, 0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb, 0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4, 0xdccad731, 0x85104263, 0x22401397, 0x112084c6, 0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729, 0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1, 0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9, 0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233, 0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4, 0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad, 0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e, 0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3, 0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25, 0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b, 0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f, 0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15, 0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0, 0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2, 0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7, 0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791, 0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496, 0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665, 0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b, 0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6, 0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13, 0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47, 0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7, 0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844, 0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3, 0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d, 0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456, 0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8];\n var T8 = [0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a, 0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b, 0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5, 0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5, 0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d, 0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b, 0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95, 0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e, 0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27, 0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d, 0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562, 0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9, 0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752, 0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66, 0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3, 0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced, 0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e, 0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4, 0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4, 0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd, 0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d, 0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60, 0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767, 0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79, 0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000, 0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c, 0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736, 0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24, 0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b, 0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c, 0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12, 0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814, 0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3, 0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b, 0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8, 0x31dccad7, 0x63851042, 0x97224013, 0xc6112084, 0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7, 0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077, 0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247, 0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22, 0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698, 0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f, 0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254, 0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582, 0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf, 0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb, 0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883, 0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef, 0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629, 0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035, 0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533, 0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17, 0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4, 0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46, 0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb, 0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d, 0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb, 0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a, 0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73, 0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678, 0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2, 0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff, 0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064, 0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0];\n\n // Transformations for decryption key expansion\n var U1 = [0x00000000, 0x0e090d0b, 0x1c121a16, 0x121b171d, 0x3824342c, 0x362d3927, 0x24362e3a, 0x2a3f2331, 0x70486858, 0x7e416553, 0x6c5a724e, 0x62537f45, 0x486c5c74, 0x4665517f, 0x547e4662, 0x5a774b69, 0xe090d0b0, 0xee99ddbb, 0xfc82caa6, 0xf28bc7ad, 0xd8b4e49c, 0xd6bde997, 0xc4a6fe8a, 0xcaaff381, 0x90d8b8e8, 0x9ed1b5e3, 0x8ccaa2fe, 0x82c3aff5, 0xa8fc8cc4, 0xa6f581cf, 0xb4ee96d2, 0xbae79bd9, 0xdb3bbb7b, 0xd532b670, 0xc729a16d, 0xc920ac66, 0xe31f8f57, 0xed16825c, 0xff0d9541, 0xf104984a, 0xab73d323, 0xa57ade28, 0xb761c935, 0xb968c43e, 0x9357e70f, 0x9d5eea04, 0x8f45fd19, 0x814cf012, 0x3bab6bcb, 0x35a266c0, 0x27b971dd, 0x29b07cd6, 0x038f5fe7, 0x0d8652ec, 0x1f9d45f1, 0x119448fa, 0x4be30393, 0x45ea0e98, 0x57f11985, 0x59f8148e, 0x73c737bf, 0x7dce3ab4, 0x6fd52da9, 0x61dc20a2, 0xad766df6, 0xa37f60fd, 0xb16477e0, 0xbf6d7aeb, 0x955259da, 0x9b5b54d1, 0x894043cc, 0x87494ec7, 0xdd3e05ae, 0xd33708a5, 0xc12c1fb8, 0xcf2512b3, 0xe51a3182, 0xeb133c89, 0xf9082b94, 0xf701269f, 0x4de6bd46, 0x43efb04d, 0x51f4a750, 0x5ffdaa5b, 0x75c2896a, 0x7bcb8461, 0x69d0937c, 0x67d99e77, 0x3daed51e, 0x33a7d815, 0x21bccf08, 0x2fb5c203, 0x058ae132, 0x0b83ec39, 0x1998fb24, 0x1791f62f, 0x764dd68d, 0x7844db86, 0x6a5fcc9b, 0x6456c190, 0x4e69e2a1, 0x4060efaa, 0x527bf8b7, 0x5c72f5bc, 0x0605bed5, 0x080cb3de, 0x1a17a4c3, 0x141ea9c8, 0x3e218af9, 0x302887f2, 0x223390ef, 0x2c3a9de4, 0x96dd063d, 0x98d40b36, 0x8acf1c2b, 0x84c61120, 0xaef93211, 0xa0f03f1a, 0xb2eb2807, 0xbce2250c, 0xe6956e65, 0xe89c636e, 0xfa877473, 0xf48e7978, 0xdeb15a49, 0xd0b85742, 0xc2a3405f, 0xccaa4d54, 0x41ecdaf7, 0x4fe5d7fc, 0x5dfec0e1, 0x53f7cdea, 0x79c8eedb, 0x77c1e3d0, 0x65daf4cd, 0x6bd3f9c6, 0x31a4b2af, 0x3fadbfa4, 0x2db6a8b9, 0x23bfa5b2, 0x09808683, 0x07898b88, 0x15929c95, 0x1b9b919e, 0xa17c0a47, 0xaf75074c, 0xbd6e1051, 0xb3671d5a, 0x99583e6b, 0x97513360, 0x854a247d, 0x8b432976, 0xd134621f, 0xdf3d6f14, 0xcd267809, 0xc32f7502, 0xe9105633, 0xe7195b38, 0xf5024c25, 0xfb0b412e, 0x9ad7618c, 0x94de6c87, 0x86c57b9a, 0x88cc7691, 0xa2f355a0, 0xacfa58ab, 0xbee14fb6, 0xb0e842bd, 0xea9f09d4, 0xe49604df, 0xf68d13c2, 0xf8841ec9, 0xd2bb3df8, 0xdcb230f3, 0xcea927ee, 0xc0a02ae5, 0x7a47b13c, 0x744ebc37, 0x6655ab2a, 0x685ca621, 0x42638510, 0x4c6a881b, 0x5e719f06, 0x5078920d, 0x0a0fd964, 0x0406d46f, 0x161dc372, 0x1814ce79, 0x322bed48, 0x3c22e043, 0x2e39f75e, 0x2030fa55, 0xec9ab701, 0xe293ba0a, 0xf088ad17, 0xfe81a01c, 0xd4be832d, 0xdab78e26, 0xc8ac993b, 0xc6a59430, 0x9cd2df59, 0x92dbd252, 0x80c0c54f, 0x8ec9c844, 0xa4f6eb75, 0xaaffe67e, 0xb8e4f163, 0xb6edfc68, 0x0c0a67b1, 0x02036aba, 0x10187da7, 0x1e1170ac, 0x342e539d, 0x3a275e96, 0x283c498b, 0x26354480, 0x7c420fe9, 0x724b02e2, 0x605015ff, 0x6e5918f4, 0x44663bc5, 0x4a6f36ce, 0x587421d3, 0x567d2cd8, 0x37a10c7a, 0x39a80171, 0x2bb3166c, 0x25ba1b67, 0x0f853856, 0x018c355d, 0x13972240, 0x1d9e2f4b, 0x47e96422, 0x49e06929, 0x5bfb7e34, 0x55f2733f, 0x7fcd500e, 0x71c45d05, 0x63df4a18, 0x6dd64713, 0xd731dcca, 0xd938d1c1, 0xcb23c6dc, 0xc52acbd7, 0xef15e8e6, 0xe11ce5ed, 0xf307f2f0, 0xfd0efffb, 0xa779b492, 0xa970b999, 0xbb6bae84, 0xb562a38f, 0x9f5d80be, 0x91548db5, 0x834f9aa8, 0x8d4697a3];\n var U2 = [0x00000000, 0x0b0e090d, 0x161c121a, 0x1d121b17, 0x2c382434, 0x27362d39, 0x3a24362e, 0x312a3f23, 0x58704868, 0x537e4165, 0x4e6c5a72, 0x4562537f, 0x74486c5c, 0x7f466551, 0x62547e46, 0x695a774b, 0xb0e090d0, 0xbbee99dd, 0xa6fc82ca, 0xadf28bc7, 0x9cd8b4e4, 0x97d6bde9, 0x8ac4a6fe, 0x81caaff3, 0xe890d8b8, 0xe39ed1b5, 0xfe8ccaa2, 0xf582c3af, 0xc4a8fc8c, 0xcfa6f581, 0xd2b4ee96, 0xd9bae79b, 0x7bdb3bbb, 0x70d532b6, 0x6dc729a1, 0x66c920ac, 0x57e31f8f, 0x5ced1682, 0x41ff0d95, 0x4af10498, 0x23ab73d3, 0x28a57ade, 0x35b761c9, 0x3eb968c4, 0x0f9357e7, 0x049d5eea, 0x198f45fd, 0x12814cf0, 0xcb3bab6b, 0xc035a266, 0xdd27b971, 0xd629b07c, 0xe7038f5f, 0xec0d8652, 0xf11f9d45, 0xfa119448, 0x934be303, 0x9845ea0e, 0x8557f119, 0x8e59f814, 0xbf73c737, 0xb47dce3a, 0xa96fd52d, 0xa261dc20, 0xf6ad766d, 0xfda37f60, 0xe0b16477, 0xebbf6d7a, 0xda955259, 0xd19b5b54, 0xcc894043, 0xc787494e, 0xaedd3e05, 0xa5d33708, 0xb8c12c1f, 0xb3cf2512, 0x82e51a31, 0x89eb133c, 0x94f9082b, 0x9ff70126, 0x464de6bd, 0x4d43efb0, 0x5051f4a7, 0x5b5ffdaa, 0x6a75c289, 0x617bcb84, 0x7c69d093, 0x7767d99e, 0x1e3daed5, 0x1533a7d8, 0x0821bccf, 0x032fb5c2, 0x32058ae1, 0x390b83ec, 0x241998fb, 0x2f1791f6, 0x8d764dd6, 0x867844db, 0x9b6a5fcc, 0x906456c1, 0xa14e69e2, 0xaa4060ef, 0xb7527bf8, 0xbc5c72f5, 0xd50605be, 0xde080cb3, 0xc31a17a4, 0xc8141ea9, 0xf93e218a, 0xf2302887, 0xef223390, 0xe42c3a9d, 0x3d96dd06, 0x3698d40b, 0x2b8acf1c, 0x2084c611, 0x11aef932, 0x1aa0f03f, 0x07b2eb28, 0x0cbce225, 0x65e6956e, 0x6ee89c63, 0x73fa8774, 0x78f48e79, 0x49deb15a, 0x42d0b857, 0x5fc2a340, 0x54ccaa4d, 0xf741ecda, 0xfc4fe5d7, 0xe15dfec0, 0xea53f7cd, 0xdb79c8ee, 0xd077c1e3, 0xcd65daf4, 0xc66bd3f9, 0xaf31a4b2, 0xa43fadbf, 0xb92db6a8, 0xb223bfa5, 0x83098086, 0x8807898b, 0x9515929c, 0x9e1b9b91, 0x47a17c0a, 0x4caf7507, 0x51bd6e10, 0x5ab3671d, 0x6b99583e, 0x60975133, 0x7d854a24, 0x768b4329, 0x1fd13462, 0x14df3d6f, 0x09cd2678, 0x02c32f75, 0x33e91056, 0x38e7195b, 0x25f5024c, 0x2efb0b41, 0x8c9ad761, 0x8794de6c, 0x9a86c57b, 0x9188cc76, 0xa0a2f355, 0xabacfa58, 0xb6bee14f, 0xbdb0e842, 0xd4ea9f09, 0xdfe49604, 0xc2f68d13, 0xc9f8841e, 0xf8d2bb3d, 0xf3dcb230, 0xeecea927, 0xe5c0a02a, 0x3c7a47b1, 0x37744ebc, 0x2a6655ab, 0x21685ca6, 0x10426385, 0x1b4c6a88, 0x065e719f, 0x0d507892, 0x640a0fd9, 0x6f0406d4, 0x72161dc3, 0x791814ce, 0x48322bed, 0x433c22e0, 0x5e2e39f7, 0x552030fa, 0x01ec9ab7, 0x0ae293ba, 0x17f088ad, 0x1cfe81a0, 0x2dd4be83, 0x26dab78e, 0x3bc8ac99, 0x30c6a594, 0x599cd2df, 0x5292dbd2, 0x4f80c0c5, 0x448ec9c8, 0x75a4f6eb, 0x7eaaffe6, 0x63b8e4f1, 0x68b6edfc, 0xb10c0a67, 0xba02036a, 0xa710187d, 0xac1e1170, 0x9d342e53, 0x963a275e, 0x8b283c49, 0x80263544, 0xe97c420f, 0xe2724b02, 0xff605015, 0xf46e5918, 0xc544663b, 0xce4a6f36, 0xd3587421, 0xd8567d2c, 0x7a37a10c, 0x7139a801, 0x6c2bb316, 0x6725ba1b, 0x560f8538, 0x5d018c35, 0x40139722, 0x4b1d9e2f, 0x2247e964, 0x2949e069, 0x345bfb7e, 0x3f55f273, 0x0e7fcd50, 0x0571c45d, 0x1863df4a, 0x136dd647, 0xcad731dc, 0xc1d938d1, 0xdccb23c6, 0xd7c52acb, 0xe6ef15e8, 0xede11ce5, 0xf0f307f2, 0xfbfd0eff, 0x92a779b4, 0x99a970b9, 0x84bb6bae, 0x8fb562a3, 0xbe9f5d80, 0xb591548d, 0xa8834f9a, 0xa38d4697];\n var U3 = [0x00000000, 0x0d0b0e09, 0x1a161c12, 0x171d121b, 0x342c3824, 0x3927362d, 0x2e3a2436, 0x23312a3f, 0x68587048, 0x65537e41, 0x724e6c5a, 0x7f456253, 0x5c74486c, 0x517f4665, 0x4662547e, 0x4b695a77, 0xd0b0e090, 0xddbbee99, 0xcaa6fc82, 0xc7adf28b, 0xe49cd8b4, 0xe997d6bd, 0xfe8ac4a6, 0xf381caaf, 0xb8e890d8, 0xb5e39ed1, 0xa2fe8cca, 0xaff582c3, 0x8cc4a8fc, 0x81cfa6f5, 0x96d2b4ee, 0x9bd9bae7, 0xbb7bdb3b, 0xb670d532, 0xa16dc729, 0xac66c920, 0x8f57e31f, 0x825ced16, 0x9541ff0d, 0x984af104, 0xd323ab73, 0xde28a57a, 0xc935b761, 0xc43eb968, 0xe70f9357, 0xea049d5e, 0xfd198f45, 0xf012814c, 0x6bcb3bab, 0x66c035a2, 0x71dd27b9, 0x7cd629b0, 0x5fe7038f, 0x52ec0d86, 0x45f11f9d, 0x48fa1194, 0x03934be3, 0x0e9845ea, 0x198557f1, 0x148e59f8, 0x37bf73c7, 0x3ab47dce, 0x2da96fd5, 0x20a261dc, 0x6df6ad76, 0x60fda37f, 0x77e0b164, 0x7aebbf6d, 0x59da9552, 0x54d19b5b, 0x43cc8940, 0x4ec78749, 0x05aedd3e, 0x08a5d337, 0x1fb8c12c, 0x12b3cf25, 0x3182e51a, 0x3c89eb13, 0x2b94f908, 0x269ff701, 0xbd464de6, 0xb04d43ef, 0xa75051f4, 0xaa5b5ffd, 0x896a75c2, 0x84617bcb, 0x937c69d0, 0x9e7767d9, 0xd51e3dae, 0xd81533a7, 0xcf0821bc, 0xc2032fb5, 0xe132058a, 0xec390b83, 0xfb241998, 0xf62f1791, 0xd68d764d, 0xdb867844, 0xcc9b6a5f, 0xc1906456, 0xe2a14e69, 0xefaa4060, 0xf8b7527b, 0xf5bc5c72, 0xbed50605, 0xb3de080c, 0xa4c31a17, 0xa9c8141e, 0x8af93e21, 0x87f23028, 0x90ef2233, 0x9de42c3a, 0x063d96dd, 0x0b3698d4, 0x1c2b8acf, 0x112084c6, 0x3211aef9, 0x3f1aa0f0, 0x2807b2eb, 0x250cbce2, 0x6e65e695, 0x636ee89c, 0x7473fa87, 0x7978f48e, 0x5a49deb1, 0x5742d0b8, 0x405fc2a3, 0x4d54ccaa, 0xdaf741ec, 0xd7fc4fe5, 0xc0e15dfe, 0xcdea53f7, 0xeedb79c8, 0xe3d077c1, 0xf4cd65da, 0xf9c66bd3, 0xb2af31a4, 0xbfa43fad, 0xa8b92db6, 0xa5b223bf, 0x86830980, 0x8b880789, 0x9c951592, 0x919e1b9b, 0x0a47a17c, 0x074caf75, 0x1051bd6e, 0x1d5ab367, 0x3e6b9958, 0x33609751, 0x247d854a, 0x29768b43, 0x621fd134, 0x6f14df3d, 0x7809cd26, 0x7502c32f, 0x5633e910, 0x5b38e719, 0x4c25f502, 0x412efb0b, 0x618c9ad7, 0x6c8794de, 0x7b9a86c5, 0x769188cc, 0x55a0a2f3, 0x58abacfa, 0x4fb6bee1, 0x42bdb0e8, 0x09d4ea9f, 0x04dfe496, 0x13c2f68d, 0x1ec9f884, 0x3df8d2bb, 0x30f3dcb2, 0x27eecea9, 0x2ae5c0a0, 0xb13c7a47, 0xbc37744e, 0xab2a6655, 0xa621685c, 0x85104263, 0x881b4c6a, 0x9f065e71, 0x920d5078, 0xd9640a0f, 0xd46f0406, 0xc372161d, 0xce791814, 0xed48322b, 0xe0433c22, 0xf75e2e39, 0xfa552030, 0xb701ec9a, 0xba0ae293, 0xad17f088, 0xa01cfe81, 0x832dd4be, 0x8e26dab7, 0x993bc8ac, 0x9430c6a5, 0xdf599cd2, 0xd25292db, 0xc54f80c0, 0xc8448ec9, 0xeb75a4f6, 0xe67eaaff, 0xf163b8e4, 0xfc68b6ed, 0x67b10c0a, 0x6aba0203, 0x7da71018, 0x70ac1e11, 0x539d342e, 0x5e963a27, 0x498b283c, 0x44802635, 0x0fe97c42, 0x02e2724b, 0x15ff6050, 0x18f46e59, 0x3bc54466, 0x36ce4a6f, 0x21d35874, 0x2cd8567d, 0x0c7a37a1, 0x017139a8, 0x166c2bb3, 0x1b6725ba, 0x38560f85, 0x355d018c, 0x22401397, 0x2f4b1d9e, 0x642247e9, 0x692949e0, 0x7e345bfb, 0x733f55f2, 0x500e7fcd, 0x5d0571c4, 0x4a1863df, 0x47136dd6, 0xdccad731, 0xd1c1d938, 0xc6dccb23, 0xcbd7c52a, 0xe8e6ef15, 0xe5ede11c, 0xf2f0f307, 0xfffbfd0e, 0xb492a779, 0xb999a970, 0xae84bb6b, 0xa38fb562, 0x80be9f5d, 0x8db59154, 0x9aa8834f, 0x97a38d46];\n var U4 = [0x00000000, 0x090d0b0e, 0x121a161c, 0x1b171d12, 0x24342c38, 0x2d392736, 0x362e3a24, 0x3f23312a, 0x48685870, 0x4165537e, 0x5a724e6c, 0x537f4562, 0x6c5c7448, 0x65517f46, 0x7e466254, 0x774b695a, 0x90d0b0e0, 0x99ddbbee, 0x82caa6fc, 0x8bc7adf2, 0xb4e49cd8, 0xbde997d6, 0xa6fe8ac4, 0xaff381ca, 0xd8b8e890, 0xd1b5e39e, 0xcaa2fe8c, 0xc3aff582, 0xfc8cc4a8, 0xf581cfa6, 0xee96d2b4, 0xe79bd9ba, 0x3bbb7bdb, 0x32b670d5, 0x29a16dc7, 0x20ac66c9, 0x1f8f57e3, 0x16825ced, 0x0d9541ff, 0x04984af1, 0x73d323ab, 0x7ade28a5, 0x61c935b7, 0x68c43eb9, 0x57e70f93, 0x5eea049d, 0x45fd198f, 0x4cf01281, 0xab6bcb3b, 0xa266c035, 0xb971dd27, 0xb07cd629, 0x8f5fe703, 0x8652ec0d, 0x9d45f11f, 0x9448fa11, 0xe303934b, 0xea0e9845, 0xf1198557, 0xf8148e59, 0xc737bf73, 0xce3ab47d, 0xd52da96f, 0xdc20a261, 0x766df6ad, 0x7f60fda3, 0x6477e0b1, 0x6d7aebbf, 0x5259da95, 0x5b54d19b, 0x4043cc89, 0x494ec787, 0x3e05aedd, 0x3708a5d3, 0x2c1fb8c1, 0x2512b3cf, 0x1a3182e5, 0x133c89eb, 0x082b94f9, 0x01269ff7, 0xe6bd464d, 0xefb04d43, 0xf4a75051, 0xfdaa5b5f, 0xc2896a75, 0xcb84617b, 0xd0937c69, 0xd99e7767, 0xaed51e3d, 0xa7d81533, 0xbccf0821, 0xb5c2032f, 0x8ae13205, 0x83ec390b, 0x98fb2419, 0x91f62f17, 0x4dd68d76, 0x44db8678, 0x5fcc9b6a, 0x56c19064, 0x69e2a14e, 0x60efaa40, 0x7bf8b752, 0x72f5bc5c, 0x05bed506, 0x0cb3de08, 0x17a4c31a, 0x1ea9c814, 0x218af93e, 0x2887f230, 0x3390ef22, 0x3a9de42c, 0xdd063d96, 0xd40b3698, 0xcf1c2b8a, 0xc6112084, 0xf93211ae, 0xf03f1aa0, 0xeb2807b2, 0xe2250cbc, 0x956e65e6, 0x9c636ee8, 0x877473fa, 0x8e7978f4, 0xb15a49de, 0xb85742d0, 0xa3405fc2, 0xaa4d54cc, 0xecdaf741, 0xe5d7fc4f, 0xfec0e15d, 0xf7cdea53, 0xc8eedb79, 0xc1e3d077, 0xdaf4cd65, 0xd3f9c66b, 0xa4b2af31, 0xadbfa43f, 0xb6a8b92d, 0xbfa5b223, 0x80868309, 0x898b8807, 0x929c9515, 0x9b919e1b, 0x7c0a47a1, 0x75074caf, 0x6e1051bd, 0x671d5ab3, 0x583e6b99, 0x51336097, 0x4a247d85, 0x4329768b, 0x34621fd1, 0x3d6f14df, 0x267809cd, 0x2f7502c3, 0x105633e9, 0x195b38e7, 0x024c25f5, 0x0b412efb, 0xd7618c9a, 0xde6c8794, 0xc57b9a86, 0xcc769188, 0xf355a0a2, 0xfa58abac, 0xe14fb6be, 0xe842bdb0, 0x9f09d4ea, 0x9604dfe4, 0x8d13c2f6, 0x841ec9f8, 0xbb3df8d2, 0xb230f3dc, 0xa927eece, 0xa02ae5c0, 0x47b13c7a, 0x4ebc3774, 0x55ab2a66, 0x5ca62168, 0x63851042, 0x6a881b4c, 0x719f065e, 0x78920d50, 0x0fd9640a, 0x06d46f04, 0x1dc37216, 0x14ce7918, 0x2bed4832, 0x22e0433c, 0x39f75e2e, 0x30fa5520, 0x9ab701ec, 0x93ba0ae2, 0x88ad17f0, 0x81a01cfe, 0xbe832dd4, 0xb78e26da, 0xac993bc8, 0xa59430c6, 0xd2df599c, 0xdbd25292, 0xc0c54f80, 0xc9c8448e, 0xf6eb75a4, 0xffe67eaa, 0xe4f163b8, 0xedfc68b6, 0x0a67b10c, 0x036aba02, 0x187da710, 0x1170ac1e, 0x2e539d34, 0x275e963a, 0x3c498b28, 0x35448026, 0x420fe97c, 0x4b02e272, 0x5015ff60, 0x5918f46e, 0x663bc544, 0x6f36ce4a, 0x7421d358, 0x7d2cd856, 0xa10c7a37, 0xa8017139, 0xb3166c2b, 0xba1b6725, 0x8538560f, 0x8c355d01, 0x97224013, 0x9e2f4b1d, 0xe9642247, 0xe0692949, 0xfb7e345b, 0xf2733f55, 0xcd500e7f, 0xc45d0571, 0xdf4a1863, 0xd647136d, 0x31dccad7, 0x38d1c1d9, 0x23c6dccb, 0x2acbd7c5, 0x15e8e6ef, 0x1ce5ede1, 0x07f2f0f3, 0x0efffbfd, 0x79b492a7, 0x70b999a9, 0x6bae84bb, 0x62a38fb5, 0x5d80be9f, 0x548db591, 0x4f9aa883, 0x4697a38d];\n\n function convertToInt32(bytes) {\n var result = [];\n for (var i = 0; i < bytes.length; i += 4) {\n result.push(\n (bytes[i ] << 24) |\n (bytes[i + 1] << 16) |\n (bytes[i + 2] << 8) |\n bytes[i + 3]\n );\n }\n return result;\n }\n\n var AES = function(key) {\n if (!(this instanceof AES)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n Object.defineProperty(this, 'key', {\n value: coerceArray(key, true)\n });\n\n this._prepare();\n }\n\n\n AES.prototype._prepare = function() {\n\n var rounds = numberOfRounds[this.key.length];\n if (rounds == null) {\n throw new Error('invalid key size (must be 16, 24 or 32 bytes)');\n }\n\n // encryption round keys\n this._Ke = [];\n\n // decryption round keys\n this._Kd = [];\n\n for (var i = 0; i <= rounds; i++) {\n this._Ke.push([0, 0, 0, 0]);\n this._Kd.push([0, 0, 0, 0]);\n }\n\n var roundKeyCount = (rounds + 1) * 4;\n var KC = this.key.length / 4;\n\n // convert the key into ints\n var tk = convertToInt32(this.key);\n\n // copy values into round key arrays\n var index;\n for (var i = 0; i < KC; i++) {\n index = i >> 2;\n this._Ke[index][i % 4] = tk[i];\n this._Kd[rounds - index][i % 4] = tk[i];\n }\n\n // key expansion (fips-197 section 5.2)\n var rconpointer = 0;\n var t = KC, tt;\n while (t < roundKeyCount) {\n tt = tk[KC - 1];\n tk[0] ^= ((S[(tt >> 16) & 0xFF] << 24) ^\n (S[(tt >> 8) & 0xFF] << 16) ^\n (S[ tt & 0xFF] << 8) ^\n S[(tt >> 24) & 0xFF] ^\n (rcon[rconpointer] << 24));\n rconpointer += 1;\n\n // key expansion (for non-256 bit)\n if (KC != 8) {\n for (var i = 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n\n // key expansion for 256-bit keys is \"slightly different\" (fips-197)\n } else {\n for (var i = 1; i < (KC / 2); i++) {\n tk[i] ^= tk[i - 1];\n }\n tt = tk[(KC / 2) - 1];\n\n tk[KC / 2] ^= (S[ tt & 0xFF] ^\n (S[(tt >> 8) & 0xFF] << 8) ^\n (S[(tt >> 16) & 0xFF] << 16) ^\n (S[(tt >> 24) & 0xFF] << 24));\n\n for (var i = (KC / 2) + 1; i < KC; i++) {\n tk[i] ^= tk[i - 1];\n }\n }\n\n // copy values into round key arrays\n var i = 0, r, c;\n while (i < KC && t < roundKeyCount) {\n r = t >> 2;\n c = t % 4;\n this._Ke[r][c] = tk[i];\n this._Kd[rounds - r][c] = tk[i++];\n t++;\n }\n }\n\n // inverse-cipher-ify the decryption round key (fips-197 section 5.3)\n for (var r = 1; r < rounds; r++) {\n for (var c = 0; c < 4; c++) {\n tt = this._Kd[r][c];\n this._Kd[r][c] = (U1[(tt >> 24) & 0xFF] ^\n U2[(tt >> 16) & 0xFF] ^\n U3[(tt >> 8) & 0xFF] ^\n U4[ tt & 0xFF]);\n }\n }\n }\n\n AES.prototype.encrypt = function(plaintext) {\n if (plaintext.length != 16) {\n throw new Error('invalid plaintext size (must be 16 bytes)');\n }\n\n var rounds = this._Ke.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(plaintext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Ke[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T1[(t[ i ] >> 24) & 0xff] ^\n T2[(t[(i + 1) % 4] >> 16) & 0xff] ^\n T3[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T4[ t[(i + 3) % 4] & 0xff] ^\n this._Ke[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Ke[rounds][i];\n result[4 * i ] = (S[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (S[(t[(i + 1) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (S[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (S[ t[(i + 3) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n AES.prototype.decrypt = function(ciphertext) {\n if (ciphertext.length != 16) {\n throw new Error('invalid ciphertext size (must be 16 bytes)');\n }\n\n var rounds = this._Kd.length - 1;\n var a = [0, 0, 0, 0];\n\n // convert plaintext to (ints ^ key)\n var t = convertToInt32(ciphertext);\n for (var i = 0; i < 4; i++) {\n t[i] ^= this._Kd[0][i];\n }\n\n // apply round transforms\n for (var r = 1; r < rounds; r++) {\n for (var i = 0; i < 4; i++) {\n a[i] = (T5[(t[ i ] >> 24) & 0xff] ^\n T6[(t[(i + 3) % 4] >> 16) & 0xff] ^\n T7[(t[(i + 2) % 4] >> 8) & 0xff] ^\n T8[ t[(i + 1) % 4] & 0xff] ^\n this._Kd[r][i]);\n }\n t = a.slice();\n }\n\n // the last round is special\n var result = createArray(16), tt;\n for (var i = 0; i < 4; i++) {\n tt = this._Kd[rounds][i];\n result[4 * i ] = (Si[(t[ i ] >> 24) & 0xff] ^ (tt >> 24)) & 0xff;\n result[4 * i + 1] = (Si[(t[(i + 3) % 4] >> 16) & 0xff] ^ (tt >> 16)) & 0xff;\n result[4 * i + 2] = (Si[(t[(i + 2) % 4] >> 8) & 0xff] ^ (tt >> 8)) & 0xff;\n result[4 * i + 3] = (Si[ t[(i + 1) % 4] & 0xff] ^ tt ) & 0xff;\n }\n\n return result;\n }\n\n\n /**\n * Mode Of Operation - Electonic Codebook (ECB)\n */\n var ModeOfOperationECB = function(key) {\n if (!(this instanceof ModeOfOperationECB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Electronic Code Block\";\n this.name = \"ecb\";\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationECB.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n block = this._aes.encrypt(block);\n copyArray(block, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationECB.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n copyArray(block, plaintext, i);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Block Chaining (CBC)\n */\n var ModeOfOperationCBC = function(key, iv) {\n if (!(this instanceof ModeOfOperationCBC)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Block Chaining\";\n this.name = \"cbc\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastCipherblock = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCBC.prototype.encrypt = function(plaintext) {\n plaintext = coerceArray(plaintext);\n\n if ((plaintext.length % 16) !== 0) {\n throw new Error('invalid plaintext size (must be multiple of 16 bytes)');\n }\n\n var ciphertext = createArray(plaintext.length);\n var block = createArray(16);\n\n for (var i = 0; i < plaintext.length; i += 16) {\n copyArray(plaintext, block, 0, i, i + 16);\n\n for (var j = 0; j < 16; j++) {\n block[j] ^= this._lastCipherblock[j];\n }\n\n this._lastCipherblock = this._aes.encrypt(block);\n copyArray(this._lastCipherblock, ciphertext, i);\n }\n\n return ciphertext;\n }\n\n ModeOfOperationCBC.prototype.decrypt = function(ciphertext) {\n ciphertext = coerceArray(ciphertext);\n\n if ((ciphertext.length % 16) !== 0) {\n throw new Error('invalid ciphertext size (must be multiple of 16 bytes)');\n }\n\n var plaintext = createArray(ciphertext.length);\n var block = createArray(16);\n\n for (var i = 0; i < ciphertext.length; i += 16) {\n copyArray(ciphertext, block, 0, i, i + 16);\n block = this._aes.decrypt(block);\n\n for (var j = 0; j < 16; j++) {\n plaintext[i + j] = block[j] ^ this._lastCipherblock[j];\n }\n\n copyArray(ciphertext, this._lastCipherblock, 0, i, i + 16);\n }\n\n return plaintext;\n }\n\n\n /**\n * Mode Of Operation - Cipher Feedback (CFB)\n */\n var ModeOfOperationCFB = function(key, iv, segmentSize) {\n if (!(this instanceof ModeOfOperationCFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Cipher Feedback\";\n this.name = \"cfb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 size)');\n }\n\n if (!segmentSize) { segmentSize = 1; }\n\n this.segmentSize = segmentSize;\n\n this._shiftRegister = coerceArray(iv, true);\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCFB.prototype.encrypt = function(plaintext) {\n if ((plaintext.length % this.segmentSize) != 0) {\n throw new Error('invalid plaintext size (must be segmentSize bytes)');\n }\n\n var encrypted = coerceArray(plaintext, true);\n\n var xorSegment;\n for (var i = 0; i < encrypted.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n for (var j = 0; j < this.segmentSize; j++) {\n encrypted[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(encrypted, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return encrypted;\n }\n\n ModeOfOperationCFB.prototype.decrypt = function(ciphertext) {\n if ((ciphertext.length % this.segmentSize) != 0) {\n throw new Error('invalid ciphertext size (must be segmentSize bytes)');\n }\n\n var plaintext = coerceArray(ciphertext, true);\n\n var xorSegment;\n for (var i = 0; i < plaintext.length; i += this.segmentSize) {\n xorSegment = this._aes.encrypt(this._shiftRegister);\n\n for (var j = 0; j < this.segmentSize; j++) {\n plaintext[i + j] ^= xorSegment[j];\n }\n\n // Shift the register\n copyArray(this._shiftRegister, this._shiftRegister, 0, this.segmentSize);\n copyArray(ciphertext, this._shiftRegister, 16 - this.segmentSize, i, i + this.segmentSize);\n }\n\n return plaintext;\n }\n\n /**\n * Mode Of Operation - Output Feedback (OFB)\n */\n var ModeOfOperationOFB = function(key, iv) {\n if (!(this instanceof ModeOfOperationOFB)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Output Feedback\";\n this.name = \"ofb\";\n\n if (!iv) {\n iv = createArray(16);\n\n } else if (iv.length != 16) {\n throw new Error('invalid initialation vector size (must be 16 bytes)');\n }\n\n this._lastPrecipher = coerceArray(iv, true);\n this._lastPrecipherIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationOFB.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._lastPrecipherIndex === 16) {\n this._lastPrecipher = this._aes.encrypt(this._lastPrecipher);\n this._lastPrecipherIndex = 0;\n }\n encrypted[i] ^= this._lastPrecipher[this._lastPrecipherIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationOFB.prototype.decrypt = ModeOfOperationOFB.prototype.encrypt;\n\n\n /**\n * Counter object for CTR common mode of operation\n */\n var Counter = function(initialValue) {\n if (!(this instanceof Counter)) {\n throw Error('Counter must be instanitated with `new`');\n }\n\n // We allow 0, but anything false-ish uses the default 1\n if (initialValue !== 0 && !initialValue) { initialValue = 1; }\n\n if (typeof(initialValue) === 'number') {\n this._counter = createArray(16);\n this.setValue(initialValue);\n\n } else {\n this.setBytes(initialValue);\n }\n }\n\n Counter.prototype.setValue = function(value) {\n if (typeof(value) !== 'number' || parseInt(value) != value) {\n throw new Error('invalid counter value (must be an integer)');\n }\n\n for (var index = 15; index >= 0; --index) {\n this._counter[index] = value % 256;\n value = value >> 8;\n }\n }\n\n Counter.prototype.setBytes = function(bytes) {\n bytes = coerceArray(bytes, true);\n\n if (bytes.length != 16) {\n throw new Error('invalid counter bytes size (must be 16 bytes)');\n }\n\n this._counter = bytes;\n };\n\n Counter.prototype.increment = function() {\n for (var i = 15; i >= 0; i--) {\n if (this._counter[i] === 255) {\n this._counter[i] = 0;\n } else {\n this._counter[i]++;\n break;\n }\n }\n }\n\n\n /**\n * Mode Of Operation - Counter (CTR)\n */\n var ModeOfOperationCTR = function(key, counter) {\n if (!(this instanceof ModeOfOperationCTR)) {\n throw Error('AES must be instanitated with `new`');\n }\n\n this.description = \"Counter\";\n this.name = \"ctr\";\n\n if (!(counter instanceof Counter)) {\n counter = new Counter(counter)\n }\n\n this._counter = counter;\n\n this._remainingCounter = null;\n this._remainingCounterIndex = 16;\n\n this._aes = new AES(key);\n }\n\n ModeOfOperationCTR.prototype.encrypt = function(plaintext) {\n var encrypted = coerceArray(plaintext, true);\n\n for (var i = 0; i < encrypted.length; i++) {\n if (this._remainingCounterIndex === 16) {\n this._remainingCounter = this._aes.encrypt(this._counter._counter);\n this._remainingCounterIndex = 0;\n this._counter.increment();\n }\n encrypted[i] ^= this._remainingCounter[this._remainingCounterIndex++];\n }\n\n return encrypted;\n }\n\n // Decryption is symetric\n ModeOfOperationCTR.prototype.decrypt = ModeOfOperationCTR.prototype.encrypt;\n\n\n ///////////////////////\n // Padding\n\n // See:https://tools.ietf.org/html/rfc2315\n function pkcs7pad(data) {\n data = coerceArray(data, true);\n var padder = 16 - (data.length % 16);\n var result = createArray(data.length + padder);\n copyArray(data, result);\n for (var i = data.length; i < result.length; i++) {\n result[i] = padder;\n }\n return result;\n }\n\n function pkcs7strip(data) {\n data = coerceArray(data, true);\n if (data.length < 16) { throw new Error('PKCS#7 invalid length'); }\n\n var padder = data[data.length - 1];\n if (padder > 16) { throw new Error('PKCS#7 padding byte out of range'); }\n\n var length = data.length - padder;\n for (var i = 0; i < padder; i++) {\n if (data[length + i] !== padder) {\n throw new Error('PKCS#7 invalid padding byte');\n }\n }\n\n var result = createArray(length);\n copyArray(data, result, 0, 0, length);\n return result;\n }\n\n ///////////////////////\n // Exporting\n\n\n // The block cipher\n var aesjs = {\n AES: AES,\n Counter: Counter,\n\n ModeOfOperation: {\n ecb: ModeOfOperationECB,\n cbc: ModeOfOperationCBC,\n cfb: ModeOfOperationCFB,\n ofb: ModeOfOperationOFB,\n ctr: ModeOfOperationCTR\n },\n\n utils: {\n hex: convertHex,\n utf8: convertUtf8\n },\n\n padding: {\n pkcs7: {\n pad: pkcs7pad,\n strip: pkcs7strip\n }\n },\n\n _arrayTest: {\n coerceArray: coerceArray,\n createArray: createArray,\n copyArray: copyArray,\n }\n };\n\n\n // node.js\n if (typeof exports !== 'undefined') {\n module.exports = aesjs\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(aesjs);\n\n // Web Browsers\n } else {\n\n // If there was an existing library at \"aesjs\" make sure it's still available\n if (root.aesjs) {\n aesjs._aesjs = root.aesjs;\n }\n\n root.aesjs = aesjs;\n }\n\n\n})(this);\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.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","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\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 if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\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","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, 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, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\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 that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\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 if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\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' && 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 checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\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 Buffer.alloc(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 = Buffer.allocUnsafe(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\nfunction byteLength (string, encoding) {\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 // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\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 asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\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 if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\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 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\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\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\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\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 if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\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 : utf8ToBytes(new Buffer(val, encoding).toString())\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\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\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 asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\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 isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\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 // 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 global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\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","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","'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","\"use strict\";\nimport { BaseContract, Contract, ContractFactory } from \"@ethersproject/contracts\";\nimport { BigNumber, FixedNumber } from \"@ethersproject/bignumber\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { Wallet } from \"@ethersproject/wallet\";\nimport * as constants from \"@ethersproject/constants\";\nimport * as providers from \"@ethersproject/providers\";\nimport { getDefaultProvider } from \"@ethersproject/providers\";\nimport { Wordlist, wordlists } from \"@ethersproject/wordlists\";\nimport * as utils from \"./utils\";\nimport { ErrorCode as errors, Logger } from \"@ethersproject/logger\";\n////////////////////////\n// Compile-Time Constants\n// This is generated by \"npm run dist\"\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n////////////////////////\n// Exports\nexport { Signer, Wallet, VoidSigner, getDefaultProvider, providers, BaseContract, Contract, ContractFactory, BigNumber, FixedNumber, constants, errors, logger, utils, wordlists, \n////////////////////////\n// Compile-Time Constants\nversion, Wordlist };\n//# sourceMappingURL=ethers.js.map","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\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","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","'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 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","'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\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');\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 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 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');\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\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');\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 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","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.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\nexports.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","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","module.exports = isTypedArray\nisTypedArray.strict = isStrictTypedArray\nisTypedArray.loose = isLooseTypedArray\n\nvar toString = Object.prototype.toString\nvar names = {\n '[object Int8Array]': true\n , '[object Int16Array]': true\n , '[object Int32Array]': true\n , '[object Uint8Array]': true\n , '[object Uint8ClampedArray]': true\n , '[object Uint16Array]': true\n , '[object Uint32Array]': true\n , '[object Float32Array]': true\n , '[object Float64Array]': true\n}\n\nfunction isTypedArray(arr) {\n return (\n isStrictTypedArray(arr)\n || isLooseTypedArray(arr)\n )\n}\n\nfunction isStrictTypedArray(arr) {\n return (\n arr instanceof Int8Array\n || arr instanceof Int16Array\n || arr instanceof Int32Array\n || arr instanceof Uint8Array\n || arr instanceof Uint8ClampedArray\n || arr instanceof Uint16Array\n || arr instanceof Uint32Array\n || arr instanceof Float32Array\n || arr instanceof Float64Array\n )\n}\n\nfunction isLooseTypedArray(arr) {\n return names[toString.call(arr)]\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/**\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","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","// shim for using process in browser\nvar process = module.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 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","// 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","/**\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 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","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","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","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 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","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 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","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 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 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","/**\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 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 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 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 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","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","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 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 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","/**\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 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\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","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","/**\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 toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\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 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', 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\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 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.split('').indexOf(options.arrayFormatSeparator) > -1;\n\t\t\t\tconst newValue = isArray ? 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\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(input, 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 input !== 'string') {\n\t\treturn ret;\n\t}\n\n\tinput = input.trim().replace(/^[?#&]/, '');\n\n\tif (!input) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of input.split('&')) {\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'].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\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 = (input, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url, hash] = splitOnFirst(input, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url.split('?')[0] || '',\n\t\t\tquery: parse(extract(input), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (input, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(input.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(input.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, input.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(input.url);\n\tif (input.fragmentIdentifier) {\n\t\thash = `#${encode(input.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n","\"use strict\";\n\n(function(root) {\n const MAX_VALUE = 0x7fffffff;\n\n // The SHA256 and PBKDF2 implementation are from scrypt-async-js:\n // See: https://github.com/dchest/scrypt-async-js\n function SHA256(m) {\n const K = new Uint32Array([\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 ]);\n\n let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a;\n let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19;\n const w = new Uint32Array(64);\n\n function blocks(p) {\n let off = 0, len = p.length;\n while (len >= 64) {\n let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2;\n\n for (i = 0; i < 16; i++) {\n j = off + i*4;\n w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) |\n ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff);\n }\n\n for (i = 16; i < 64; i++) {\n u = w[i-2];\n t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10);\n\n u = w[i-15];\n t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3);\n\n w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0;\n }\n\n for (i = 0; i < 64; i++) {\n 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\n 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\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 h0 = (h0 + a) | 0;\n h1 = (h1 + b) | 0;\n h2 = (h2 + c) | 0;\n h3 = (h3 + d) | 0;\n h4 = (h4 + e) | 0;\n h5 = (h5 + f) | 0;\n h6 = (h6 + g) | 0;\n h7 = (h7 + h) | 0;\n\n off += 64;\n len -= 64;\n }\n }\n\n blocks(m);\n\n let i, bytesLeft = m.length % 64,\n bitLenHi = (m.length / 0x20000000) | 0,\n bitLenLo = m.length << 3,\n numZeros = (bytesLeft < 56) ? 56 : 120,\n p = m.slice(m.length - bytesLeft, m.length);\n\n p.push(0x80);\n for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); }\n p.push((bitLenHi >>> 24) & 0xff);\n p.push((bitLenHi >>> 16) & 0xff);\n p.push((bitLenHi >>> 8) & 0xff);\n p.push((bitLenHi >>> 0) & 0xff);\n p.push((bitLenLo >>> 24) & 0xff);\n p.push((bitLenLo >>> 16) & 0xff);\n p.push((bitLenLo >>> 8) & 0xff);\n p.push((bitLenLo >>> 0) & 0xff);\n\n blocks(p);\n\n return [\n (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff,\n (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff,\n (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff,\n (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff,\n (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff,\n (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff,\n (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff,\n (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff\n ];\n }\n\n function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) {\n // compress password if it's longer than hash block length\n password = (password.length <= 64) ? password : SHA256(password);\n\n const innerLen = 64 + salt.length + 4;\n const inner = new Array(innerLen);\n const outerKey = new Array(64);\n\n let i;\n let dk = [];\n\n // inner = (password ^ ipad) || salt || counter\n for (i = 0; i < 64; i++) { inner[i] = 0x36; }\n for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; }\n for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; }\n for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; }\n\n // outerKey = password ^ opad\n for (i = 0; i < 64; i++) outerKey[i] = 0x5c;\n for (i = 0; i < password.length; i++) outerKey[i] ^= password[i];\n\n // increments counter inside inner\n function incrementCounter() {\n for (let i = innerLen - 1; i >= innerLen - 4; i--) {\n inner[i]++;\n if (inner[i] <= 0xff) return;\n inner[i] = 0;\n }\n }\n\n // output blocks = SHA256(outerKey || SHA256(inner)) ...\n while (dkLen >= 32) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))));\n dkLen -= 32;\n }\n if (dkLen > 0) {\n incrementCounter();\n dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen));\n }\n\n return dk;\n }\n\n // The following is an adaptation of scryptsy\n // See: https://www.npmjs.com/package/scryptsy\n function blockmix_salsa8(BY, Yi, r, x, _X) {\n let i;\n\n arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16);\n for (i = 0; i < 2 * r; i++) {\n blockxor(BY, i * 16, _X, 16);\n salsa20_8(_X, x);\n arraycopy(_X, 0, BY, Yi + (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16);\n }\n\n for (i = 0; i < r; i++) {\n arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16);\n }\n }\n\n function R(a, b) {\n return (a << b) | (a >>> (32 - b));\n }\n\n function salsa20_8(B, x) {\n arraycopy(B, 0, x, 0, 16);\n\n for (let i = 8; i > 0; i -= 2) {\n x[ 4] ^= R(x[ 0] + x[12], 7);\n x[ 8] ^= R(x[ 4] + x[ 0], 9);\n x[12] ^= R(x[ 8] + x[ 4], 13);\n x[ 0] ^= R(x[12] + x[ 8], 18);\n x[ 9] ^= R(x[ 5] + x[ 1], 7);\n x[13] ^= R(x[ 9] + x[ 5], 9);\n x[ 1] ^= R(x[13] + x[ 9], 13);\n x[ 5] ^= R(x[ 1] + x[13], 18);\n x[14] ^= R(x[10] + x[ 6], 7);\n x[ 2] ^= R(x[14] + x[10], 9);\n x[ 6] ^= R(x[ 2] + x[14], 13);\n x[10] ^= R(x[ 6] + x[ 2], 18);\n x[ 3] ^= R(x[15] + x[11], 7);\n x[ 7] ^= R(x[ 3] + x[15], 9);\n x[11] ^= R(x[ 7] + x[ 3], 13);\n x[15] ^= R(x[11] + x[ 7], 18);\n x[ 1] ^= R(x[ 0] + x[ 3], 7);\n x[ 2] ^= R(x[ 1] + x[ 0], 9);\n x[ 3] ^= R(x[ 2] + x[ 1], 13);\n x[ 0] ^= R(x[ 3] + x[ 2], 18);\n x[ 6] ^= R(x[ 5] + x[ 4], 7);\n x[ 7] ^= R(x[ 6] + x[ 5], 9);\n x[ 4] ^= R(x[ 7] + x[ 6], 13);\n x[ 5] ^= R(x[ 4] + x[ 7], 18);\n x[11] ^= R(x[10] + x[ 9], 7);\n x[ 8] ^= R(x[11] + x[10], 9);\n x[ 9] ^= R(x[ 8] + x[11], 13);\n x[10] ^= R(x[ 9] + x[ 8], 18);\n x[12] ^= R(x[15] + x[14], 7);\n x[13] ^= R(x[12] + x[15], 9);\n x[14] ^= R(x[13] + x[12], 13);\n x[15] ^= R(x[14] + x[13], 18);\n }\n\n for (let i = 0; i < 16; ++i) {\n B[i] += x[i];\n }\n }\n\n // naive approach... going back to loop unrolling may yield additional performance\n function blockxor(S, Si, D, len) {\n for (let i = 0; i < len; i++) {\n D[i] ^= S[Si + i]\n }\n }\n\n function arraycopy(src, srcPos, dest, destPos, length) {\n while (length--) {\n dest[destPos++] = src[srcPos++];\n }\n }\n\n function checkBufferish(o) {\n if (!o || typeof(o.length) !== 'number') { return false; }\n\n for (let i = 0; i < o.length; i++) {\n const v = o[i];\n if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) {\n return false;\n }\n }\n\n return true;\n }\n\n function ensureInteger(value, name) {\n if (typeof(value) !== \"number\" || (value % 1)) { throw new Error('invalid ' + name); }\n return value;\n }\n\n // N = Cpu cost, r = Memory cost, p = parallelization cost\n // callback(error, progress, key)\n function _scrypt(password, salt, N, r, p, dkLen, callback) {\n\n N = ensureInteger(N, 'N');\n r = ensureInteger(r, 'r');\n p = ensureInteger(p, 'p');\n\n dkLen = ensureInteger(dkLen, 'dkLen');\n\n if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); }\n\n if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); }\n if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); }\n\n if (!checkBufferish(password)) {\n throw new Error('password must be an array or buffer');\n }\n password = Array.prototype.slice.call(password);\n\n if (!checkBufferish(salt)) {\n throw new Error('salt must be an array or buffer');\n }\n salt = Array.prototype.slice.call(salt);\n\n let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r);\n const B = new Uint32Array(p * 32 * r)\n for (let i = 0; i < B.length; i++) {\n const j = i * 4;\n B[i] = ((b[j + 3] & 0xff) << 24) |\n ((b[j + 2] & 0xff) << 16) |\n ((b[j + 1] & 0xff) << 8) |\n ((b[j + 0] & 0xff) << 0);\n }\n\n const XY = new Uint32Array(64 * r);\n const V = new Uint32Array(32 * r * N);\n\n const Yi = 32 * r;\n\n // scratch space\n const x = new Uint32Array(16); // salsa20_8\n const _X = new Uint32Array(16); // blockmix_salsa8\n\n const totalOps = p * N * 2;\n let currentOp = 0;\n let lastPercent10 = null;\n\n // Set this to true to abandon the scrypt on the next step\n let stop = false;\n\n // State information\n let state = 0;\n let i0 = 0, i1;\n let Bi;\n\n // How many blockmix_salsa8 can we do per step?\n const limit = callback ? parseInt(1000 / r): 0xffffffff;\n\n // Trick from scrypt-async; if there is a setImmediate shim in place, use it\n const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout;\n\n // This is really all I changed; making scryptsy a state machine so we occasionally\n // stop and give other evnts on the evnt loop a chance to run. ~RicMoo\n const incrementalSMix = function() {\n if (stop) {\n return callback(new Error('cancelled'), currentOp / totalOps);\n }\n\n let steps;\n\n switch (state) {\n case 0:\n // for (var i = 0; i < p; i++)...\n Bi = i0 * 32 * r;\n\n arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1\n\n state = 1; // Move to ROMix 2\n i1 = 0;\n\n // Fall through\n\n case 1:\n\n // Run up to 1000 steps of the first inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 2\n arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4\n }\n\n // for (var i = 0; i < N; i++)\n i1 += steps;\n currentOp += steps;\n\n if (callback) {\n // Call the callback with the progress (optionally stopping us)\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n i1 = 0; // Move to ROMix 6\n state = 2;\n\n // Fall through\n\n case 2:\n\n // Run up to 1000 steps of the second inner smix loop\n steps = N - i1;\n if (steps > limit) { steps = limit; }\n for (let i = 0; i < steps; i++) { // ROMix - 6\n const offset = (2 * r - 1) * 16; // ROMix - 7\n const j = XY[offset] & (N - 1);\n blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner)\n blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer)\n }\n\n // for (var i = 0; i < N; i++)...\n i1 += steps;\n currentOp += steps;\n\n // Call the callback with the progress (optionally stopping us)\n if (callback) {\n const percent10 = parseInt(1000 * currentOp / totalOps);\n if (percent10 !== lastPercent10) {\n stop = callback(null, currentOp / totalOps);\n if (stop) { break; }\n lastPercent10 = percent10;\n }\n }\n\n if (i1 < N) { break; }\n\n arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10\n\n // for (var i = 0; i < p; i++)...\n i0++;\n if (i0 < p) {\n state = 0;\n break;\n }\n\n b = [];\n for (let i = 0; i < B.length; i++) {\n b.push((B[i] >> 0) & 0xff);\n b.push((B[i] >> 8) & 0xff);\n b.push((B[i] >> 16) & 0xff);\n b.push((B[i] >> 24) & 0xff);\n }\n\n const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen);\n\n // Send the result to the callback\n if (callback) { callback(null, 1.0, derivedKey); }\n\n // Done; don't break (which would reschedule)\n return derivedKey;\n }\n\n // Schedule the next steps\n if (callback) { nextTick(incrementalSMix); }\n }\n\n // Run the smix state machine until completion\n if (!callback) {\n while (true) {\n const derivedKey = incrementalSMix();\n if (derivedKey != undefined) { return derivedKey; }\n }\n }\n\n // Bootstrap the async incremental smix\n incrementalSMix();\n }\n\n const lib = {\n scrypt: function(password, salt, N, r, p, dkLen, progressCallback) {\n return new Promise(function(resolve, reject) {\n let lastProgress = 0;\n if (progressCallback) { progressCallback(0); }\n _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) {\n if (error) {\n reject(error);\n } else if (key) {\n if (progressCallback && lastProgress !== 1) {\n progressCallback(1);\n }\n resolve(new Uint8Array(key));\n } else if (progressCallback && progress !== lastProgress) {\n lastProgress = progress;\n return progressCallback(progress);\n }\n });\n });\n },\n syncScrypt: function(password, salt, N, r, p, dkLen) {\n return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen));\n }\n };\n\n // node.js\n if (typeof(exports) !== 'undefined') {\n module.exports = lib;\n\n // RequireJS/AMD\n // http://www.requirejs.org/docs/api.html\n // https://github.com/amdjs/amdjs-api/wiki/AMD\n } else if (typeof(define) === 'function' && define.amd) {\n define(lib);\n\n // Web Browsers\n } else if (root) {\n\n // If there was an existing library \"scrypt\", make sure it is still available\n if (root.scrypt) {\n root._scrypt = root.scrypt;\n }\n\n root.scrypt = lib;\n }\n\n})(this);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a